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

創(chuàng)新互聯(lián)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質量求生存,以技術求發(fā)展,成交一個客戶多一個朋友!為您提供成都做網(wǎng)站、成都網(wǎng)站制作、成都網(wǎng)頁設計、重慶小程序開發(fā)公司、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、app軟件開發(fā)公司是成都本地專業(yè)的網(wǎng)站建設和網(wǎng)站設計公司,等你一起來見證!
微博Android平臺SDK為第三方微博應用提供了文檔易用的微博API調用服務,使第三方客戶端無需了解復雜的驗證,API調用過程。并可以實現(xiàn)分享到微博的功能,可以分享文字,或者多媒體信息到內置的分享頁面,并發(fā)送到微博。
首先我們需要在新浪微博開放平臺上進行注冊,之后需要創(chuàng)建一個新的應用,并且需要記下應用的APP key,App Secret Key以及設置應用的回調頁以便我們在程序中進行使用。此外,還需要在應用的高級信息里添加測試用戶的uid,切記切記,否則會出現(xiàn)登陸不成功等怪現(xiàn)象。
接著我們下載微博提供的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即是文章開頭介紹的在微博上創(chuàng)建的應用里的兩個key,setRedirectUrl中的內容即是在應用中設置的回調頁。
Listener則是在進行登陸授權后對執(zhí)行結果進行處理的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是在微博登陸授權成功后會執(zhí)行的方法,在這個方法中,你可以調用你想要的功能如發(fā)表微博,轉發(fā),評論等。使用的代碼可參看以下代碼:
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中需要的具體參數(shù),可根據(jù)需要進行添加
AsyncWeiboRunner 是用來執(zhí)行具體請求的類,根據(jù)你設定的參數(shù)發(fā)起請求。注意這里又有一個listerner,而這個listener是對發(fā)起請求后的結果進行處理的回調類,
RequestListener listener= new RequestListener()
需要復寫的方法有OnIOException,onError,onComplete,這樣可以清楚地對各種情況進行處理。
這樣在程序中就可以使用新浪微博 android sdk了。
我雖然對新浪SDK不熟,但仍然覺得應該確認兩個地方:
1、requestToken確保不為空
2、uri.getQueryParameter("oauth_verifier")確保不為空。
這樣你就能夠定位到是哪個地方出空指針了!
1.Intent intent = new Intent(Intent.ACTION_SEND); //啟動分享發(fā)送的屬性
2. intent.setType("text/plain"); //分享發(fā)送的數(shù)據(jù)類型
3. intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); //分享的主題
4. intent.putExtra(Intent.EXTRA_TEXT, "extratext"); //分享的內容
5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//這個也許是分享列表的背景吧
6. FenxiangActivity.this.startActivity(Intent.createChooser(intent, "分享"));//目標應用選擇對話框的標題
然后在Manifest的Activity下面加上:
1.intent-filter Android:label="@string/albums_sendbyWBlog"
2. action Android:name="android.intent.action.SEND" /
3. data Android:mimeType="image/*" /
4. category Android:name="android.intent.category.DEFAULT" /
5. /intent-filter
Android進階之使用第三方平臺ShareSDK實現(xiàn)新浪微博的一鍵分享功能。
ShareSDK是一種社會化分享組件,為iOS、Android、WP8
的APP提供社會化功能,集成了一些常用的類庫和接口,縮短開發(fā)者的開發(fā)時間,還有社會化統(tǒng)計分析管理后臺。ShareSDK移動開發(fā)者服務平臺由廣州掌淘網(wǎng)絡科技有限公司開發(fā)。
分享文章:android微博分享,分享微博首頁
瀏覽地址:http://chinadenli.net/article21/dsicscd.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿建站、移動網(wǎng)站建設、網(wǎng)站維護、動態(tài)網(wǎng)站、品牌網(wǎng)站建設、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)