sina


sina模块实现新浪微博分享功能,通过rd.sinaWeibo获取管理对象。

注: 插件被集成后,用户需要填写配置文件,将从新浪微博注册所得的APPKEY等信息填写到pluginConfigs.xml配置文件中.新浪微博注册地址. 详见pluginConfigs.xml示例,只需修改相应的value值即可。sina不可与ShareSDK同时使用,否则会造成编译失败。分享的图片大小不能大于32K

pluginConfigs.xml示例
 <config pluginName="sinaWeibo">
        <ios>
            <!--要修改AppKey 的value 为申请的appKey--> 
            <param key="sinaWeibo_AppKey" value="2045436852"></param>
            <!--在新浪微博开发者平台创建应用后设置的回调网址-->
            <param key="sinaWeibo_redirectURI" value="https://api.weibo.com/oauth2/default.html"></param>
            <!--value 为"wb+自己的appkey"--> 
            <param key="sinaWeibo_urlScheme" value="wb2045436852"></param>
        </ios>
        <android>
            <!--要修改AppKey 的value 为申请的appKey--> 
            <param key="sinaWeibo_AppKey" value="f74048f0bf5200dde3ca89bd"></param>
            <!--在新浪微博开发者平台创建应用后设置的回调网址,建议使用默认回调页:https://api.weibo.com/oauth2/default.html--> 
            <param key="sinaWeibo_redirectURI" value="https://api.weibo.com/oauth2/default.html"></param>
        </android>
    </config>

如何创建应用

1、在浏览器中打开微博开放平台,登录您的微博帐号后进入应用开发版块,点击创建应用,如下图:
image

2、在按下创建应用后弹出的页面中,注意选择“客户端”类型(iOS或安卓),如下图:
image

3、请在“我的应用 – 应用信息 – 高级信息”中填写您的应用回调页,这样才能使OAuth2.0授权正常进行。如果您的AppSecret发生泄露,您也可以通过该页面中的重置按钮对其重置,iOS应用推荐使用默认回调页,如下图所示:
image

4、应用基本信息的配置
(1)iOS配置页面,如下图所示:
image
(2)Android配置页面,如下图所示:
image

image

image

5、创建应用完成后,可以在“我的应用 – 应用信息”中查看您所创建应用的AppKey及AppSecret,请妥善保管您的这些信息,这将成为您调用微博开放平台各API的身份标志,如下图所示:
image

6、建议配置应用的测试账号信息,若不配置调用分享可能会出错。
image

分享类型(Number):

  • rd.sinaWeibo.share_text : 值为0,分享文字

  • rd.sinaWeibo.share_image:值为 1,分享图片

  • rd.sinaWeibo.share_webpage:值为 2,分享网页

  • rd.sinaWeibo.share_video:值为 3,分享视频

  • rd.sinaWeibo.share_audio:值为 4,分享音频

分享状态(Number):

  • rd.sinaWeibo.share_success:值为0,分享成功

  • rd.sinaWeibo.share_cancel:值为-1,分享取消

  • rd.sinaWeibo.share_fail:值为-2,分享失败

授权和获取用户信息状态(Number):

  • rd.sinaWeibo.auth_success : 值为 0 登录成功

  • rd.sinaWeibo.auth_cancel : 值为 -1 登录取消

  • rd.sinaWeibo.auth_fail : 值为 -3 登录失败

  • rd.sinaWeibo.user_info_success : 值为 101 获取用户信息成功

  • rd.sinaWeibo.user_info_fail : 值为 102 获取用户信息失败

回调信息说明:

  • 授权登录成功回调:

    JSON示例:

      {
          "uid":"",    // 用户的uid
          "token":""    // 授权成功后的token值
      }
    
  • 获取用户信息接口成功回调:

    JSON示例:

      {
      "id": 1404376560,
      "screen_name": "zaku",
      "name": "zaku",
      "province": "11",
      "city": "5",
      "location": "北京 朝阳区",
      "description": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。",
      "url": "http://blog.sina.com.cn/zaku",
      "profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",
      "domain": "zaku",
      "gender": "m",
      "followers_count": 1204,
      "friends_count": 447,
      "statuses_count": 2908,
      "favourites_count": 0,
      "created_at": "Fri Aug 28 00:00:00 +0800 2009",
      "following": false,
      "allow_all_act_msg": false,
      "geo_enabled": true,
      "verified": false,
      "status": {
          "created_at": "Tue May 24 18:04:53 +0800 2011",
          "id": 11142488790,
          "text": "我的相机到了。",
          "source": "<a href="http://weibo.com" rel="nofollow">新浪微博</a>",
          "favorited": false,
          "truncated": false,
          "in_reply_to_status_id": "",
          "in_reply_to_user_id": "",
          "in_reply_to_screen_name": "",
          "geo": null,
          "mid": "5610221544300749636",
          "annotations": [],
          "reposts_count": 5,
          "comments_count": 8
      },
      "allow_all_comment": true,
      "avatar_large": "http://tp1.sinaimg.cn/1404376560/180/0/1",
      "verified_reason": "",
      "follow_me": false,
      "online_status": 0,
      "bi_followers_count": 215
      }
    

    字段说明:

返回值字段 字段类型 字段说明
id int64 用户UID
idstr string 字符串型的用户UID
screen_name string 用户昵称
name string 友好显示名称
province int 用户所在省级ID
city int 用户所在城市ID
location string 用户所在地
description string 用户个人描述
url string 用户博客地址
profile_image_url string 用户头像地址(中图),50×50像素
profile_url string 用户的微博统一URL地址
domain string 用户的个性化域名
weihao string 用户的微号
gender string 性别,m:男、f:女、n:未知
followers_count int 粉丝数
friends_count int 关注数
statuses_count int 微博数
favourites_count int 收藏数
created_at string 用户创建(注册)时间
following boolean 暂未支持
allow_all_act_msg boolean 是否允许所有人给我发私信,true:是,false:否
geo_enabled boolean 是否允许标识用户的地理位置,true:是,false:否
verified boolean 是否是微博认证用户,即加V用户,true:是,false:否
verified_type int 暂未支持
remark string 用户备注信息,只有在查询用户关系时才返回此字段
status object 用户的最近一条微博信息字段 详细
allow_all_comment boolean 是否允许所有人对我的微博进行评论,true:是,false:否
avatar_large string 用户头像地址(大图),180×180像素
avatar_hd string 用户头像地址(高清),高清头像原图
verified_reason string 认证原因
follow_me boolean 该用户是否关注当前登录用户,true:是,false:否
online_status int 用户的在线状态,0:不在线、1:在线
bi_followers_count int 用户的互粉数
lang string 用户当前的语言版本,zh-cn:简体中文,zh-tw:繁体中文,en:英语

方法:

对象:

回调方法:

回调方法:

关于iOS9支持:

init


rd.sinaWeibo.init(appkey,redirectURI);    
说明:

初始化插件

参数:
  • appkey: ( String ) 必选 注册应用时得到的appkey
  • redirectURI: ( String ) 必选 应用回调页面,可在新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中找到。
返回值:

(Boolean) 初始化成功或失败

示例:
  rd.sinaWeibo.init('2045436852', 'http://www.sina.com');

isWeiBoInstalled


rd.sinaWeibo.isWeiBoInstalled();    
说明:

检查微博客户端是否安装

参数:

返回值:

(Boolean) 安装或未安装

示例:
  rd.sinaWeibo.isWeiBoInstalled();    

auth


rd.sinaWeibo.auth(callback);    
说明:

授权登录

参数:
  • callback: ( authCallback ) 必选 登录状态的回调函数
    返回值:
示例:
  rd.sinaWeibo.auth(function(state){alert(state);});

getUserInfo


rd.sinaWeibo.getUserInfo(token, uid);    
说明:

授权登录

参数:
返回值:

示例:
  rd.sinaWeibo.    rd.sinaWeibo.getUserInfo("aaa", "111");

logout


rd.sinaWeibo.logout();    
说明:

登出, 登出后需要重新授权才能获取到用户信息

参数:

返回值:

示例:
  rd.sinaWeibo.logout();

share


分享内容。

rd.sinaWeibo.share(type,option,callback);    
说明:

分享内容。注:iOS在未安装新浪官方微博客户端的情况下,在分享网页、视频、音频这三种类型内容时,仅能显示分享的文字内容,安装微博客户端后分享内容能完全显示。 Android在没有安装客户端情况下只能分享文字。

参数:
  • type: ( 分享类型 ) 必选 设置分享类型
  • option: ( shareOption ) 必选 设置分享参数
  • callback: ( shareCallback ) 必选 分享状态的回调函数(Android端,分享到新浪客户端时,没有回调值)
返回值:

无返回值

示例:
  var option = {
            content : 'stay with me',
            mediaTitle:'web title',
            mediaDescription:'web webpageDescription',
            mediaThumbnail:'http://cc.cocimg.com/api/uploads/150701/c6fc11ad17203d01cb5a571d264f3ba6.jpg',
            mediaUrl:'http://www.cocoachina.com/',
        };
  rd.sinaWeibo.share(rd.sinaWeibo.share_webpage,option,function(state){alert(state);});

shareOption


JSON对象 设置分享参数。

params
{
    property String content,
    property String imageUrl,
    property String mediaTitle,
    property String mediaDescription,
    property String mediaThumbnil,
    property String mediaUrl
}
说明:

用于设置分享信息的参数。

属性:
  • content: ( String ) 必选 分享内容
  • imageUrl: ( String ) 必选 分享图片地址
  • mediaTitle: ( String ) 必选 分享媒体内容的标题(若要分享更加复杂的内容,需要申请高级接口,高级接口需要通过新浪微博官方的实名认证以及应用审核,方能使用.)
  • mediaDescription: ( String ) 必选 分享媒体的说明(若要分享更加复杂的内容,需要申请高级接口,高级接口需要通过新浪微博官方的实名认证以及应用审核,方能使用.)
  • mediaThumbnail: ( String ) 必选 分享媒体内容的缩略图地址(若要分享更加复杂的内容,需要申请高级接口,高级接口需要通过新浪微博官方的实名认证以及应用审核,方能使用.)
  • mediaUrl: ( String ) 必选 分享媒体内容地址
示例:
var option = {
            content : 'stay with me',
            mediaTitle:'web title',
            mediaDescription:'web webpageDescription',
            mediaThumbnail:'http://cc.cocimg.com/api/uploads/150701/c6fc11ad17203d01cb5a571d264f3ba6.jpg',
            mediaUrl:'http://www.cocoachina.com/',
        };

shareCallback


用户分享的回调函数。

function shareCallback(state) {
       // Handle Success
}
说明:

用户分享的回调函数。

参数:
  • state: ( 分享状态 ) 必选 用户分享结果的状态
返回值:

无返回值

示例:
function shareCallback(state) {
       // Handle Success
       if(state == rd.sinaWeibo.share_success) {
                 alert('分享成功');
       }  else if(state == rd.sinaWeibo.share_fail) {
                 alert('分享失败');
       } else if(state == rd.sinaWeibo.share_cancel) {
                 alert('取消分享');
       }
}

authCallback


用户授权登录的回调函数。

void authCallback(state,msg) {
       // Handle Success
}
说明:

用户授权登录的回调函数。

参数:
  • state: ( Number ) ( 登录状态 ) 必选 用户登录结果的状态
  • msg: ( String ) ( 回调信息 ) 必选 回调的信息
返回值:

无返回值

示例:
function authCallback(state, msg){
            var stateStr = "";
            if(rd.sinaWeibo.auth_success == state) {
                var data = JSON.parse(msg);
                token = data.token;
                uid = data.uid;
                stateStr = "授权成功token = "+token+",uid="+uid;
            }else if(rd.sinaWeibo.auth_cancel == state) {
                stateStr = "授权取消";
            }else if(rd.sinaWeibo.auth_fail == state) {
                stateStr = "授权失败";
            }else if(rd.sinaWeibo.user_info_success == state) {
                stateStr = "获取用户信息成功->"+msg;
            }else if(rd.sinaWeibo.user_info_fail == state) {
                stateStr = "获取用户信息失败->"+msg;
            }
            alert('state = '+ stateStr);
   }

关闭HTTPS请求协议


为了强制增强数据访问安全,iOS9默认会把大部分的HTTP请求都改为HTTPS请求。本插件基于新浪微博集成.目前官网没有针对iOS9的HTTPS协议做出更新操作. 所以,如果想在iOS9环境下使用本插件.则需要在pluginConfig.xml中进行配置。配置方式如下:

<!--找到InfoPlistEdit节点 在这里设置HTTPS相关参数.-->
<config pluginName="InfoPlistEdit">
    <ios>
        <!--true:表示开启http协议模式;false:表示关闭http协议模式,采用https请求协议.-->
         <param key="AllowAllHttpConnection" value="true"></param>
    </ios>
</config>
说明:

将以上配置参数拷贝至项目中的pluginConfig.xml文件中即可.若已有相同的配置项.则不需要再次拷贝.在原基础上添加即可.

添加URLScheme白名单


如果想在iOS9环境下启动新浪微博客户端分享内容.需要配置URLScheme白名单。

具体设置可参照适配iOS9系统.

<config pluginName="InfoPlistEdit">

    <ios>
    <param key="SchemeWhiteList">
         <string>sinaweibo</string>
        <string>sinaweibohd</string>
        <string>sinaweibosso</string>
        <string>sinaweibohdsso</string>
        <string>weibosdk</string>
        <string>weibosdk2.5</string>
        <string>mqq</string>
        <string>mqqflyticket</string>
    </param>
     <param key="AllowAllHttpConnection" value="true"></param>
</ios>
</config>
说明:

将以上配置参数拷贝至项目中的pluginConfig.xml文件中即可.若已有相同的配置项.则不需要再次拷贝.在原基础上添加即可.