android分享微博,微博分享sdk

android 怎么快速实现新浪微博分享功能

Android进阶之使用第三方平台ShareSDK实现新浪微博的一键分享功能。

创新互联公司专业为企业提供东乡网站建设、东乡做网站、东乡网站设计、东乡网站制作等企业网站建设、网页设计与制作、东乡企业网站模板建站服务,10余年东乡做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

ShareSDK是一种社会化分享组件,为iOS、Android、WP8

的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。ShareSDK移动开发者服务平台由广州掌淘网络科技有限公司开发。

android应用实现分享到微博功能

1.Intent intent = new Intent(Intent.ACTION_SEND); //启动分享发送的属性

2. intent.setType("text/plain"); //分享发送的数据类型

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版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分享微博,微博分享sdk
当前链接:http://pwwzsj.com/article/dssdipg.html