zoukankan      html  css  js  c++  java
  • 新浪微博API使用

      如今社交网络异常活跃,接触到的几乎每个应用都使用有一个功能:分享。分享到各种SNS上,

    现今以新浪微博最火,其提供了良好的API接口等文档供开发者使用,正好称此有机会也来接触一下,

    说不定那天也能用得上。下面简单记录下初步使用过程中遇到的问题,以便对后来者有点作用。

    授权认证

      在使用新浪微博API前,还是很有必要先了解一下新浪微博授权认证过程如何。

    可以参考博文:http://whatandroid.blog.51cto.com/2172732/818665

    APP KEY的申请

           为了使用新浪微博开放平台提供的API,你需要先注册一个应用,获得一个专属的App Key和App Secret。

    Key跟Secret的使用方式跟其他一些协议中的公钥私钥的方案相类似,你可以使用你所熟悉的编程语言将key和secret结合,

    为你发出的每个请求添加签名,以此来向新浪微博开放平台表明自己身份的合法性。

           注册方法:登录新浪微博,点击应用 找到:

       

        

    然后就可以创建应用,填写信息,不需要审核通过就可以得到App Key。

    下载SDK

           http://open.weibo.com/wiki/SDK

           到微博开放平台下载就可以了,我的是Android-SDK版本。weibo4android-1.2.1.zip。

    里面已经提供了很多example,可以参考。直接导入到Eclipse里面也是可以使用的。

    需要配置一下版本,将Weibo类中的

    public class Weibo {

           public static String CONSUMER_KEY = ""; //填入申请到的

           public static String CONSUMER_SECRET = "";//填入申请到的

    }

    然后就可以测试运行。

    API使用

           其中提供了很多example,这样我们就可以来熟悉微博API的使用。

    在开发中我们可能需要将其集成到我们的APP中,这其中会有一些问题,下面看看我遇到的以及解决方法。在android4.0中:

    1  E/AndroidRuntime(3595): java.lang.RuntimeException: Unable to start activity ComponentInf{com.weibo/com.weibo.ShareActivity}:android.os.NetworkOnMainThreadException.

           NetworkOnMainThreadException:在主线程UI线程中访问网络 异常。访问网络是一件耗时的操作,可能被禁止这样使用。

           解决方法:开辟新的线程中访问网络。(最好是这样

                  或者使用android提供的类StrictMode自动进行优化。

                  具体使用方法在在程序入口如onCreate中加入:

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()    

                   .detectDiskReads()    

                   .detectDiskWrites()    

                   .detectNetwork() 

                   .penaltyLog()    

                   .build());

                  StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()    

                   .detectLeakedSqlLiteObjects()    

                   .detectLeakedClosableObjects()    

                   .penaltyLog()    

                   .penaltyDeath()    

                   .build());

     

      StrictMode用意具体可参考http://www.cnblogs.com/zelos/archive/2011/02/27/1966403.html

     

    2  E/AndroidRuntime(6195): java.lang.NoClassDefFoundError: org.apache.commons.httpclient.methods.PostMethod

           分享图片的时候会遇上,找不到此类定义,可是明明已经导入相应的SDK中提供的包了。

           将包都放入到lib文件下,在Eclipse中右键点击lib文件夹,选Bulid path –> Use as source folder。

     

    3  weibo.getOAuthRequestToken(callback_url);中callback_url问题

           设置不正确可能在登录之后无法返回到相应的Activity中;

           这里的设置和AndroidManifest.xml中对activity的filter对应:

           <data

           android:host="ShareActivity"

           android:scheme="share" />

    然后requestToken =weibo.getOAuthRequestToken("share://ShareActivity"); 要对应。

    才能返回到ShareActivity中;

    scheme是工程名,必须得小写。host是要返回的activity。

     

    发布微博例子

      顺便附上一个来自网络上,能够分享图片的例子。我把它移到我这里工程上来的完整程序。

      来自文章:http://www.pocketdigi.com/20110727/424.html

      程序例子下载:

          https://files.cnblogs.com/bastard/Share.rar

     

  • 相关阅读:
    [Java入门] 从键盘输入两个整数,求最小公倍数并输出
    【C#食谱】【面食】菜单3:用泛型替代ArrayList
    C# Stable Sort(稳固排序)
    【C#食谱】【面食】菜单4:List和LinkedList性能比较
    一个非常酷的应用:修改“开始”菜单的显示文本
    我的第一个5年计划
    C#语言重要常识
    决定执行力的49个细节
    .NET资源链接
    标准表达式中数据类型不匹配(Access 时间格式)
  • 原文地址:https://www.cnblogs.com/bastard/p/2563922.html
Copyright © 2011-2022 走看看