分享到新浪微博,折腾了大半个月,现在终于弄出来了,心里的那个爽呀,太痛快了,哈哈!!
废话少说,首先是认证,
1.进入新浪微博提供的开放平台http://open.weibo.com/ 注册新浪账号。
2.点击’我是开发者‘,创建一个应用,得到CONSUMER_KEY和CONSUMER_SECRET,保存这两个值。
3.找到相关的API接口文档,下载android版的SDK weibo4android-1.2.0.zip 。
4.解压后倒入到eclipse中。
------下面是关键步骤
5.在自己的项目中创建一个lib文件夹,分别添加weiboandroid项目中的这三个包commons-codec.jar,commons-httpclient-3.1.jar,commons-logging-1.1.jar 。
注意:这里千万不要添加weibo4android-1.2.0.jar这个包。
然后再将这三个包引用到到项目中。 //这里这样做的好处是当你项目完成后拷贝的别处的时候,不会造成.jar包的丢失……
6.分别添加这四个包的自己的项目中,weibo4android,weibo4android.http,weibo4android.org.json,weibo4android.util。 //此时如果引入weibo4android-1.2.0.jar这个包是会报错,提示什么版本问题,查询提供的都是从1.6版本复制项目到2.2版本的方案。 本人觉得这个包跟现在倒入的四个包造成命名空间的冲突造成的。
7.参考examples-weibo4android.androidexamples下的三个文件。OAuthConstant.java直接拷贝到项目中,AndroidExample.java认证所需要的相关配置,OAuthActivity.java认证成功后得到AccessToken的key和Secret,可以复制其代码。 //详细代码设置后面会给出,不要着急………………
8.AndroidExample和OAuthActivity代码所对应的java文件都需要在AndroidManifest.xml中注册。 注册方式不说,基础入门必修课。
注意对OAuthActivity对应文件参数的设置:
<intent-filter>
< action android:name="android.intent.action.VIEW" />
< category android:name="android.intent.category.DEFAULT" />
< category android:name="android.intent.category.BROWSABLE" />
< data android:scheme="cn.edu.cou.mobile" android:host="ShareSinaSendActivity" /> //这里scheme host 在AndroidExample对应文件跳转时会用到
< /intent-filter>
9.最重要的一点,在复制到项目中的weibo4android包下找到Weibo.java文件,修改CONSUMER_KEY和CONSUMER_SECRET的值,与第二点是提到的值对应。
10.代码部分:
AndroidExample对应文件中必须有:
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
然后:
Weibo weibo = OAuthConstant.getInstance().getWeibo();
RequestToken requestToken;
try {
requestToken =weibo.getOAuthRequestToken("weibo4android://OAuthActivity"); // 分别取第八点提到的scheme host ---host必须为在新浪成功后所需要调回的页面名称
Uri uri = Uri.parse(requestToken.getAuthenticationURL()+ "&from=xweibo"); // 即OAuthActivity的对应文件。 scheme建议为项目名称或是项目总的命名空间
OAuthConstant.getInstance().setRequestToken(requestToken);
startActivity(new Intent(Intent.ACTION_VIEW, uri));
} catch (WeiboException e) {
e.printStackTrace();
}
OAuthActivity对应文件:
Uri uri=this.getIntent().getData();
try {
RequestToken requestToken = OAuthConstant.getInstance()
.getRequestToken();
accessToken = requestToken.getAccessToken(uri
.getQueryParameter("oauth_verifier"));
OAuthConstant.getInstance().setAccessToken(accessToken);
textView.setText("得到AccessToken的key和Secret,可以使用这两个参数进行授权登录了.\n Access token:\n"
+ accessToken.getToken()
+ "\n Access token secret:\n"
+ accessToken.getTokenSecret());
} catch (WeiboException e) {
e.printStackTrace();
}
/////----------------以下为我在OAuthActivity对应文件中Button的OnClick事件中处理发表一条新微博的功能。
Weibo weibo = new Weibo();
Status status = null;
try {
weibo.setToken(accessToken.getToken(),accessToken.getTokenSecret());
status = weibo.updateStatus("测试android上发新浪微博消息!!!!"); //关键是这里,能否成功调用updateStatus发表微博,有兴趣的可以仔细研究一下。
} catch (WeiboException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(status.getId() + " : " + status.getText() + " "
+ status.getCreatedAt());
//如果程序能执行到这里,证明已经发表成功,下面是执行成功后跳转到另外一个页面。
Intent intent = new Intent();
intent.setClass(ShareSinaSendActivity.this, ShareListActivity.class);
ShareSinaSendActivity.this.startActivity(intent);
到这里,功能基本上就完了,如果想要其他的功能,只需要根据SDK上提供的那个Demo进行对应的操作即可。
总结:分享到新浪微博,调用新浪的API,除了登陆界面是新浪提供外,其余貌似都需要些xml布局文件。 本人乃初学,以上为记录这次成功后的分享,希望也能帮到很多需要做新浪微博分享功能的人。 对于android的知识点,每个人提供多提供一点心得,既是对自己的一种提升,同时又能帮到更多的人,真的很好!!!!
分享到:
相关推荐
简单的新浪微博分享实现,一键授权认证并分享
iOS 新浪微博分享,调用官方的sdk, 欢迎学习,下载
对于新浪微博分享,里面有详细的文档介绍
新浪微博分享的Android代码,相关的工程代码,新浪微博分享demo,包括sdk文档
本人自己实现的支持腾讯新浪微博分享,支持outh2.0
android 新浪微博分享 功能开发 官方提供的demo太繁琐。我简化了一大半,有要用的自己下载。
ios新浪微博分享,新浪官方文档,详细代码介绍
这是模仿新浪微博写的,可以实现分享、上传图片等功能。。。
新浪 微博 分享 例子
这是一个实现新浪微博分享功能的demo.
新浪微博分享功能 以及第三方登陆 的实现
新浪微博分享文档、认证 文档,demo 签名工具 详细步骤
新浪微博开发demo sdk版本3.2
新浪微博自定义分享利器 新浪微博自定义分享利器
1.预先导入com_weibo_android做为引用库工程 2.右键MyWeiboDemo->Properties->Android->library:add(界面右下方)-选择com_weibo_android...3.运行 提示:项目默认sdcard目录下已经存在Pictures目录,若没有,请自行创建
新浪微博 授权 分享 代码实例和文档 实际远行流程
Android腾讯微博分享SDK