微博androidsdk
① android項目在導入微博SDK的時候報的錯誤,怎樣解決
你有引入了2個重復的包了,檢查一下 libs 文件夾或你的buildpath把
② 怎麼基於新浪微博開放平台提供的android SDK開發新浪微博手機客戶端。已下載了SDK和一個jar包,怎麼用呢
sina sdk是基於java語言的,封裝了一些函數,如認證等,你正常的android開發時,import相關的文件即可,UI層你自己寫,調用api時,調用sdk里的就行了
③ 利用新浪微博開放平台提供的sdk開發自己的android客戶端問題
adroid 自帶的sdk是1.5的,sina自帶的幾個jar包放到android項目中了嗎,如果放進去了,你可以去下載缺少的jar包,導進去就可以了
④ mob中sharesdk for android v2.8.2怎麼用
由於第一次使用,所以需要先進行新浪授權,授權界面下面開始介紹如何使用ShareSDK實現微博的分享功能(其他平台的類似)shareSDK傳送門在使用shareSDK之前,我們需要先到新浪微博的開放平台進行注冊,獲得appkey以及其他的信息新浪微博開放平台傳送門下面圖片中劃掉的部分是要重點關注的特別需要注意的是,下面的回調網址必須填寫,而且在代碼中有涉及,使用默認的即可至此,開發之前的准備工作已經做好了,下面還是貼代碼首先看一下布局文件代碼,很簡單,只有一個按鈕06.07.12.13.MainActivity.javapackagecom.heli17.weiboonekeylogin;002.003.importjava.io.File;004.importjava.io.FileOutputStream;005.importjava.util.HashMap;006.007.importandroid.app.Activity;008.importandroid.app.Notification;009.importandroid.app.NotificationManager;010.importandroid.app.PendingIntent;011.importandroid.content.Context;012.importandroid.content.Intent;013.importandroid.graphics.Bitmap;014.importandroid.graphics.Bitmap.CompressFormat;015.importandroid.graphics.BitmapFactory;016.importandroid.os.Bundle;017.importandroid.os.Environment;018.importandroid.os.Handler.Callback;019.importandroid.os.Message;020.importandroid.view.View;021.importandroid.widget.Toast;022.importcn.sharesdk.framework.Platform;023.importcn.sharesdk.framework.PlatformActionListener;024.importcn.sharesdk.framework.ShareSDK;025.importcn.sharesdk.framework.utils.UIHandler;026.importcn.sharesdk.onekeyshare.OnekeyShare;027.028.,029.Callback{030.031.privatestaticfinalintMSG_TOAST=1;032.privatestaticfinalintMSG_ACTION_CCALLBACK=2;033.privatestaticfinalintMSG_CANCEL_NOTIFY=3;034.035.//sdcard中的圖片名稱036.privatestaticfinalStringFILE_NAME="/share_pic.jpg";037.publicstaticStringTEST_IMAGE;[email protected](Messagemsg){041.switch(msg.what){042.caseMSG_TOAST:{043.Stringtext=String.valueOf(msg.obj);044.Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();045.}046.break;047.caseMSG_ACTION_CCALLBACK:{048.switch(msg.arg1){049.case1://成功後發送Notification050.showNotification(2000,"分享完成");051.break;052.case2://失敗後發送Notification053.showNotification(2000,"分享失敗");054.break;055.case3://取消056.showNotification(2000,"取消分享");057.break;058.}059.}060.break;061.caseMSG_CANCEL_NOTIFY:062.NotificationManagernm=(NotificationManager)msg.obj;063.if(nm!=null){064.nm.cancel(msg.arg1);065.}066.break;067.}068.returnfalse;069.}[email protected](BundlesavedInstanceState){073.super.onCreate(savedInstanceState);074.setContentView(R.layout.activity_main);075.//初始化ShareSDK076.ShareSDK.initSDK(this);077.//初始化圖片路徑078.newThread(){079.publicvoidrun(){080.initImagePath();081.}082.}.start();083.}084.085.//一鍵分享的點擊事件086.publicvoidclick(Viewv){087.//實例化一個OnekeyShare對象088.OnekeyShareoks=newOnekeyShare();089.//設置Notification的顯示圖標和顯示文字090.oks.setNotification(R.drawable.ic_launcher,"ShareSDKdemo");091.//設置簡訊地址或者是郵箱地址,如果沒有可以不設置092.oks.setAddress("12345678901");093.//分享內容的標題094.oks.setTitle("分享內容的標題");095.//標題對應的網址,如果沒有可以不設置096.oks.setTitleUrl("");097.//設置分享的文本內容098.oks.setText("分享的文本內容");099.//設置分享照片的本地路徑,如果沒有可以不設置100.oks.setImagePath(MainActivity.TEST_IMAGE);101.//設置分享照片的url地址,如果沒有可以不設置102.oks.setImageUrl("/imgs/sharesdk/content/2013/07/25/1374723172663.jpg");103.//微信和易信的分享的網路連接,如果沒有可以不設置104.oks.setUrl("");105.//人人平台特有的評論欄位,如果沒有可以不設置106.oks.setComment("comment");107.//程序的名稱或者是站點名稱108.oks.setSite("site");109.//程序的名稱或者是站點名稱的鏈接地址110.oks.setSiteUrl("");111.//設置緯度112.oks.setLatitude(23.122619f);113.//設置精度114.oks.setLongitude(113.372338f);115.//設置是否是直接分享116.oks.setSilent(false);117.//顯示118.oks.show(MainActivity.this);119.}120.121.privatevoidinitImagePath(){122.try{123.if(Environment.MEDIA_MOUNTED.equals(Environment124..getExternalStorageState())125.&&Environment.getExternalStorageDirectory().exists()){126.TEST_IMAGE=Environment.getExternalStorageDirectory()127..getAbsolutePath()+FILE_NAME;128.}else{129.TEST_IMAGE=getApplication().getFilesDir().getAbsolutePath()130.+FILE_NAME;131.}132.//創建圖片文件夾133.Filefile=newFile(TEST_IMAGE);134.if(!file.exists()){135.file.createNewFile();136.Bitmappic=BitmapFactory.decodeResource(getResources(),137.R.drawable.pic);138.FileOutputStreamfos=newFileOutputStream(file);139.pic.compress(CompressFormat.JPEG,100,fos);140.fos.flush();141.fos.close();142.}143.}catch(Throwablet){144.t.printStackTrace();145.TEST_IMAGE=null;146.}147.}[email protected](){151.super.onDestroy();152.//在Activity中停止ShareSDK153.ShareSDK.stopSDK(this);154.}155.
⑤ 最新的新浪微博客戶端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了。