當前位置:首頁 » 安卓系統 » android開發新浪微博客戶端

android開發新浪微博客戶端

發布時間: 2022-11-16 22:09:00

『壹』 新浪微博android客戶端問題!!!!求大神解決。。。

OAuth.java這個文件能看源碼?
估計調用的 是decode(String s),而不是decode(String s,String enc),
前一種方法JAVA API種明確了 不贊成 使用,它會去調第二個 ,帶一個dfltEncName 值,這個值為空就 會 拋空異常 ;
事實上 ,用第二個 方法要 指定 編碼方式,如UTF-8等;
它們的 定義:
/**
* Translates a string into <code>x-www-form-urlencoded</code>
* format. This method uses the platform's default encoding
* as the encoding scheme to obtain the bytes for unsafe characters.
*
* @param s <code>String</code> to be translated.
* @deprecated The resulting string may vary depending on the platform's
* default encoding. Instead, use the encode(String,String)
* method to specify the encoding.
* @return the translated <code>String</code>.
*/
@Deprecated
public static String encode(String s) {

String str = null;

try {
str = encode(s, dfltEncName);
} catch (UnsupportedEncodingException e) {
// The system should always have the platform default
}

return str;
}

/**
* Translates a string into <code>application/x-www-form-urlencoded</code>
* format using a specific encoding scheme. This method uses the
* supplied encoding scheme to obtain the bytes for unsafe
* characters.
* <p>
* <em><strong>Note:</strong> The <a href=
* "http://www.w3.org/TR/html40/appendix/notes.html#non-ascii-chars">
* World Wide Web Consortium Recommendation</a> states that
* UTF-8 should be used. Not doing so may introce
* incompatibilites.</em>
*
* @param s <code>String</code> to be translated.
* @param enc The name of a supported
* <a href="../lang/package-summary.html#charenc">character
* encoding</a>.
* @return the translated <code>String</code>.
* @exception UnsupportedEncodingException
* If the named encoding is not supported
* @see URLDecoder#decode(java.lang.String, java.lang.String)
* @since 1.4
*/
public static String encode(String s, String enc)
throws UnsupportedEncodingException {

boolean needToChange = false;
StringBuffer out = new StringBuffer(s.length());
Charset charset;
CharArrayWriter charArrayWriter = new CharArrayWriter();

if (enc == null)
throw new NullPointerException("charsetName");

try {
charset = Charset.forName(enc);
} catch (IllegalCharsetNameException e) {
throw new UnsupportedEncodingException(enc);
} catch (UnsupportedCharsetException e) {
throw new UnsupportedEncodingException(enc);
}

for (int i = 0; i < s.length();) {
int c = (int) s.charAt(i);
//System.out.println("Examining character: " + c);
if (dontNeedEncoding.get(c)) {
if (c == ' ') {
c = '+';
needToChange = true;
}
//System.out.println("Storing: " + c);
out.append((char)c);
i++;
} else {
// convert to external encoding before hex conversion
do {
charArrayWriter.write(c);
/*
* If this character represents the start of a Unicode
* surrogate pair, then pass in two characters. It's not
* clear what should be done if a bytes reserved in the
* surrogate pairs range occurs outside of a legal
* surrogate pair. For now, just treat it as if it were
* any other character.
*/
if (c >= 0xD800 && c <= 0xDBFF) {
/*
System.out.println(Integer.toHexString(c)
+ " is high surrogate");
*/
if ( (i+1) < s.length()) {
int d = (int) s.charAt(i+1);
/*
System.out.println("\tExamining "
+ Integer.toHexString(d));
*/
if (d >= 0xDC00 && d <= 0xDFFF) {
/*
System.out.println("\t"
+ Integer.toHexString(d)
+ " is low surrogate");
*/
charArrayWriter.write(d);
i++;
}
}
}
i++;
} while (i < s.length() && !dontNeedEncoding.get((c = (int) s.charAt(i))));

charArrayWriter.flush();
String str = new String(charArrayWriter.toCharArray());
byte[] ba = str.getBytes(charset);
for (int j = 0; j < ba.length; j++) {
out.append('%');
char ch = Character.forDigit((ba[j] >> 4) & 0xF, 16);
// converting to use uppercase letter as part of
// the hex value if ch is a letter.
if (Character.isLetter(ch)) {
ch -= caseDiff;
}
out.append(ch);
ch = Character.forDigit(ba[j] & 0xF, 16);
if (Character.isLetter(ch)) {
ch -= caseDiff;
}
out.append(ch);
}
charArrayWriter.reset();
needToChange = true;
}
}

return (needToChange? out.toString() : s);
}

『貳』 新浪微博Android客戶端用了哪些開源框架

xmpp協議的即時通訊方案,openfire androidpn,等等。它們都是使用了apache mina開發,但是這些東西基本都需要二次改造開發。而且改動還很大,我也看過這些東西的源碼,發現代碼結構不太理想,耦合的情況太多,實在不好擴展。所謂XMPP 協議。只不過是別人使用mina 自定義了一個消息編碼解碼協議。通俗的講就是,xml形式消息的編碼與解碼,我們完全沒有必要在國外這套不成熟的openfire 與xmpp 上耗費過多的精力去研究,我們完全可以通過apache mina 自定義自己的通訊協議,並可以為它使用自己的名字。我們不要盲目崇拜國外的有些東西,自己掌握原理,才是最重要的,各位切記~
這套IM系統為我個人自主開發 使用了 apache mina ,主要功能為 服務端和客戶端,客戶端 到客戶端的即時通信,可以支持包括文字 圖片,語音等任何消息形式 服務端使用的 struts2+spring3和 apache mina android端 也使用的apache mina。這套IM系統結構還是非常清晰合理的,非常容易擴展和改造,下面是android版本 的 demo的目的是只是一個演示 ,可以參照它的代碼,使用這套系統開發自己的東西,核心價值是一套高靈活性,相對標准化的即時通訊解決方案,即時聊天只是它的一種運用途徑!

『叄』 開發Android新浪微博客戶端,想問一下新浪微博開放平台API的注冊介面怎麼調用啊

這個客戶端不是新浪自己開發團隊做的?這個也開放?

『肆』 利用新浪微博開放平台提供的sdk開發自己的android客戶端問題

adroid 自帶的sdk是1.5的,sina自帶的幾個jar包放到android項目中了嗎,如果放進去了,你可以去下載缺少的jar包,導進去就可以了

『伍』 android開發新浪微博客戶端問題

你首先要到新浪開源平台上申請個 app key 加入到你的應用中,如何加入適合使用api 新浪開源平台都給出了詳細的文檔了

『陸』 下載了新浪微博Android客戶端,如何安裝到手機上,我的是LG棒棒糖

新浪微博Android客戶端是為Android系統的手機開發的軟體,LG棒棒糖不是Android系統,不能用Android系統的軟體。LG棒棒糖不是智能機,如果支持Java,只能安裝jar後綴的軟體,資源比較少,如果新浪微博客戶端如果有下載通用版的鏈接,棒棒糖可以使用這個鏈接下載的軟體,其他的也是如此。LG目前只有幾款Android系統的手機,我知道的有GW620、P503、GT540,其他的大多沒有上市,只有這些手機才可以使用新浪微博Android客戶端,Android軟體的格式都是apk格式的,不要看錯了。

『柒』 android開發新浪微博客戶端,模擬器運行時出現錯誤提示Unable to execute dex:

把工程刪了重新導入一下就可以了

『捌』 最新的新浪微博客戶端ANDROID版 SDK到底怎麼用

本文介紹了如何在Android程序中使用新浪微博提供的AndroidSDK

微博Android平台SDK為第三方微博應用提供了文檔易用的微博API調用服務,使第三方客戶端無需了解復雜的驗證,API調用過程。並可以實現分享到微博的功能,可以分享文字,或者多媒體信息到內置的分享頁面,並發送到微博。

首先我們需要在新浪微博開放平台上進行注冊,之後需要創建一個新的應用,並且需要記下應用的APP key,App Secret Key以及設置應用的回調頁以便我們在程序中進行使用。此外,還需要在應用的高級信息里添加測試用戶的uid,切記切記,否則會出現登陸不成功等怪現象。

接著我們下載微博提供的Android上的SDK,下載地址在這里http。//open。weibo。com/wiki/SDK,選擇AndroidSDK進行下載即可。
使用方法:

首先將下載的sdk進行解壓,並將其導入到eclipse中,接著在你需要使用sdk的android工程中點擊右鍵,屬性,設置library屬性,選中剛才導入的weibosdk即可。如圖所示

然後在你的工程的Manifest文件中,加入以下許可權:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

這樣我們就能使用weibosdk了

建立工程以後如何在代碼中使用weiboAPI呢,下面就由我來為大家介紹使用方法:
首先在你需要使用微博的Activity中加入以下代碼:

Weibo weibo = Weibo.getInstance();
weibo.setupConsumerConfig(Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET);
weibo.setRedirectUrl("Your URLhere");
weibo.authorize(this,
listener);
注意代碼中的Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET即是文章開頭介紹的在微博上創建的應用里的兩個key,setRedirectUrl中的內容即是在應用中設置的回調頁。

Listener則是在進行登陸授權後對執行結果進行處理的Litener,代碼如下

public class AuthDialogListener implements WeiboDialogListener {
private Activity context;
private String content;
private String file;
private float lat;
private float lon;
private static boolean isOver=true;
public AuthDialogListener(Activity context,String content,String file,float lat,float lon){
this.context= context;
this.content=content;
this.file=file;
this.lat=lat;
this.lon=lon;
}
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
String oauth_verifier = values.getString("oauth_verifier");
AccessToken accessToken = new AccessToken(token, Constants.CONSUMER_SECRET);
accessToken.setExpiresIn(expires_in);
accessToken.setVerifier(oauth_verifier);
Weibo.getInstance().setAccessToken(accessToken);
try {
if (isOver) {
isOver=false;
share2weibo(this.content,null,listener,lat,lon);
}

} catch (WeiboException e) {
e.printStackTrace();
}
}

@Override
public void onError(DialogError e) {
Toast.makeText(context.getApplicationContext(),
"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();
}

@Override
public void onCancel() {
Toast.makeText(context.getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}

@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(context.getApplicationContext(),
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}

private void share2weibo(String content,String file,RequestListener listener,float lat , float lon) throws WeiboException {
Weibo weibo = Weibo.getInstance();
WeiboParameters params= new WeiboParameters();
params.add("access_token", weibo.getAccessToken().getToken());
params.add("status", content);
params.add("lat", String.valueOf(lat));
params.add("long", String.valueOf(lon));
String url = Weibo.SERVER + "statuses/update.json";
if (file!=null&&!file.equalsIgnoreCase("")) {
params.add("pic", file);
url = Weibo.SERVER + "statuses/upload.json";
}
AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo);
runner.request(this.context, url, params,Utility.HTTPMETHOD_POST,listener);

}
RequestListener listener= new RequestListener() {

@Override
public void onIOException(IOException e) {
isOver=true;
Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show();
}

@Override
public void onError(WeiboException e) {
isOver=true;
Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show();
}

@Override
public void onComplete(String response) {
isOver=true;
Toast.makeText(context, "Success!", Toast.LENGTH_LONG).show();
}
};
}

需要完成WeiboDialogListener介面中的方法,分別是onComplete,OnError,
OnCancel,OnWeiboException。其中Oncomplete是在微博登陸授權成功後會執行的方法,在這個方法中,你可以調用你想要的功能如發表微博,轉發,評論等。使用的代碼可參看以下代碼:

Weibo weibo = Weibo.getInstance();
WeiboParameters params= new WeiboParameters();
params.add("access_token", weibo.getAccessToken().getToken());
params.add("status", content);
params.add("lat", String.valueOf(lat));
params.add("long", String.valueOf(lon));
String url = Weibo.SERVER + "statuses/update.json";
AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo);
runner.request(this.context,url,params,Utility.HTTPMETHOD_POST,listener);

其中params是調用weibo api中需要的具體參數,可根據需要進行添加
AsyncWeiboRunner 是用來執行具體請求的類,根據你設定的參數發起請求。注意這里又有一個listerner,而這個listener是對發起請求後的結果進行處理的回調類,
RequestListener listener= new RequestListener()
需要復寫的方法有OnIOException,onError,onComplete,這樣可以清楚地對各種情況進行處理。
這樣在程序中就可以使用新浪微博 android sdk了。

『玖』 android 新浪微博手機客戶端 不能登錄伺服器

等待維修吧
新浪微博Android客戶端SSO授權認證缺陷

從最近幾年開始,做平台的公司都流行起Open API。這是一個非常好的理念,也受到廣大開發者的歡迎。如今,開發一款軟體,你可以很容易地集成微博、微信、人人網等流行社交媒介的分享功能,做一個社交應用變得越來越簡單。

主流社交媒介要集成到第三方應用中,最重要的入口就是安全便捷的授權認證系統。讓用戶在享受一鍵分享和各種社交樂趣的同時,又不用擔心帳號安全和隱私泄露等問題。而對於一些有特殊目的的組織或個人來說,攻佔這個授權認證系統意味著自己獲取了信息傳播的入口和渠道,數量龐大地社交入口往往能帶來巨大的社會效應。所以,這個入口就成了軟體安全攻防雙方的必爭之地。

而本文所要講的就是當前最為流行的新浪微博Android客戶端SSO授權認證入口的一個安全缺陷。此缺陷使得第三方APK在一定條件下可以不通過授權,在不需要人為操作的情況下就可以操作Android手機用戶的微博。包括關注、評論、發微博等OpenAPI中提供的功能。

『拾』 android開發新浪微博客戶端,怎麼實現OAuth協議認證。什麼方法只要能實現就行..求高手,求詳解。。。

個人用戶申請認證基本條件:頭像:需有清晰頭像發言:不少於5條簡介:綁定手機、聽眾數50、收聽數100非個人用戶申請認證基本條件:頭像:和賬號身份相符的清晰頭像發言:最近一周至少有3條原創廣播簡介:不超過100字的真實身份簡介

熱點內容
war3存儲空間不足 發布:2024-04-28 13:20:54 瀏覽:949
微信密碼已經忘記了如何找回 發布:2024-04-28 11:54:13 瀏覽:304
騰訊雲伺服器可以備案幾個網站 發布:2024-04-28 11:54:12 瀏覽:458
影響編譯速度的因素有哪些 發布:2024-04-28 11:53:58 瀏覽:255
安全配置汽車有哪些 發布:2024-04-28 11:48:07 瀏覽:830
存儲鏈路中斷 發布:2024-04-28 11:11:39 瀏覽:734
安卓錘子手機怎麼改文字 發布:2024-04-28 11:09:52 瀏覽:100
列舉貪心演算法 發布:2024-04-28 10:44:15 瀏覽:698
文具店疫情演練腳本 發布:2024-04-28 10:23:40 瀏覽:25
綠色商城源碼 發布:2024-04-28 10:04:45 瀏覽:587