zoukankan      html  css  js  c++  java
  • android分享到新浪微博,认证+发送微博,

    分享到新浪微博,折腾了大半个月,现在终于弄出来了,心里的那个爽呀,太痛快了,哈哈!!大笑大笑大笑大笑大笑大笑

    废话少说,首先是认证,

    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,可以使用这两个参数进行授权登录了. Access token: "
    + accessToken.getToken()
    + " Access token secret: "
    + 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的知识点,每个人提供多提供一点心得,既是对自己的一种提升,同时又能帮到更多的人,真的很好!!!!

  • 相关阅读:
    input type = file 上传图片转为base64
    vue-cli 搭建的项目,无法用本地IP访问
    js小数点精度问题
    虚拟机安装软件必备技术之一 --虚拟机快照技术
    Linux 关机命令总结
    查询模块错误排查
    - Oracle 闪回特性(FLASHBACK DATABASE)
    ORACLE密码过期,修改密码
    查看sql执行进度
    ORACLE CPU过高的sql查询
  • 原文地址:https://www.cnblogs.com/zhwl/p/3243277.html
Copyright © 2011-2022 走看看