Android進(jìn)階之使用第三方平臺ShareSDK實現(xiàn)新浪微博的一鍵分享功能。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供東鄉(xiāng)網(wǎng)站建設(shè)、東鄉(xiāng)做網(wǎng)站、東鄉(xiāng)網(wǎng)站設(shè)計、東鄉(xiāng)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、東鄉(xiāng)企業(yè)網(wǎng)站模板建站服務(wù),10余年東鄉(xiāng)做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
ShareSDK是一種社會化分享組件,為iOS、Android、WP8
的APP提供社會化功能,集成了一些常用的類庫和接口,縮短開發(fā)者的開發(fā)時間,還有社會化統(tǒng)計分析管理后臺。ShareSDK移動開發(fā)者服務(wù)平臺由廣州掌淘網(wǎng)絡(luò)科技有限公司開發(fā)。
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"); //分享的內(nèi)容
5. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//這個也許是分享列表的背景吧
6. FenxiangActivity.this.startActivity(Intent.createChooser(intent, "分享"));//目標(biāo)應(yīng)用選擇對話框的標(biāo)題
然后在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程序中使用新浪微博提供的AndroidSDK
微博Android平臺SDK為第三方微博應(yīng)用提供了文檔易用的微博API調(diào)用服務(wù),使第三方客戶端無需了解復(fù)雜的驗證,API調(diào)用過程。并可以實現(xiàn)分享到微博的功能,可以分享文字,或者多媒體信息到內(nèi)置的分享頁面,并發(fā)送到微博。
首先我們需要在新浪微博開放平臺上進(jìn)行注冊,之后需要創(chuàng)建一個新的應(yīng)用,并且需要記下應(yīng)用的APP key,App Secret Key以及設(shè)置應(yīng)用的回調(diào)頁以便我們在程序中進(jìn)行使用。此外,還需要在應(yīng)用的高級信息里添加測試用戶的uid,切記切記,否則會出現(xiàn)登陸不成功等怪現(xiàn)象。
接著我們下載微博提供的Android上的SDK,下載地址在這里http。//open。weibo。com/wiki/SDK,選擇AndroidSDK進(jìn)行下載即可。
使用方法:
首先將下載的sdk進(jìn)行解壓,并將其導(dǎo)入到eclipse中,接著在你需要使用sdk的android工程中點擊右鍵,屬性,設(shè)置library屬性,選中剛才導(dǎo)入的weibosdk即可。如圖所示
然后在你的工程的Manifest文件中,加入以下權(quán)限:
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)建的應(yīng)用里的兩個key,setRedirectUrl中的內(nèi)容即是在應(yīng)用中設(shè)置的回調(diào)頁。
Listener則是在進(jìn)行登陸授權(quán)后對執(zhí)行結(jié)果進(jìn)行處理的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是在微博登陸授權(quán)成功后會執(zhí)行的方法,在這個方法中,你可以調(diào)用你想要的功能如發(fā)表微博,轉(zhuǎn)發(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是調(diào)用weibo api中需要的具體參數(shù),可根據(jù)需要進(jìn)行添加
AsyncWeiboRunner 是用來執(zhí)行具體請求的類,根據(jù)你設(shè)定的參數(shù)發(fā)起請求。注意這里又有一個listerner,而這個listener是對發(fā)起請求后的結(jié)果進(jìn)行處理的回調(diào)類,
RequestListener listener= new RequestListener()
需要復(fù)寫的方法有OnIOException,onError,onComplete,這樣可以清楚地對各種情況進(jìn)行處理。
這樣在程序中就可以使用新浪微博 android sdk了。
分享名稱:android分享微博,微博分享sdk
文章網(wǎng)址:http://www.rwnh.cn/article36/dssdipg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、企業(yè)建站、ChatGPT、品牌網(wǎng)站建設(shè)、定制網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)