跳转到: 导航, 搜索
(以“=JS SDK= {{#a:nobtns|noheading}} __NOTOC__”为内容创建页面)
 
第1行: 第1行:
 
=JS SDK=
 
=JS SDK=
 +
 +
 +
 +
==概述==
 +
JS SDK for OAuth2.0是线上JS SDK的升级版本([[Weibo-JS|V1版Weibo-JS]]),它较之前版本有较大改变:
 +
 +
1、它去掉了部署在第三方的xd.html跨域文件,使开发者开发使用更加简单方便。
 +
 +
2、Appkey的传递方式由原来的json方式改变为通过参数传递方式。
 +
 +
3、为兼容之前JSSDK,该版JSSDK的命名空间由原来的WB改变为WB2。
 +
 +
4、该版本同时将Js widget同时内置其中,用户无需自已再去单独引用JS和CSS,只需调用相应的js widget方法即可。
 +
 +
5、支持通过版本号调用js widget,以便不同开发者不同的需要。
 +
 +
下面我们来一起体验一下这些特性。
 +
 +
==应用信息修改==
 +
为了保证您的应用的安全,在您使用Weibo-JS时,需要您在应用信息页面为该应用选定绑定域名功能,并绑定您的域名,我们将以此域名来判定Weibo-JS API请求来源的合法性,不合法的请求将被拒绝。
 +
 +
绑定域名的操作可以在应用创建页面及编辑页面完成。选择“绑定域名”,填入域名提交即可。
 +
 +
==引用JSSDK JavaScript文件==
 +
在页面顶端加入如下代码
 +
<pre>
 +
<script src=" http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=3168919025" type="text/javascript" charset="utf-8"></script>
 +
</pre>
 +
 +
 +
'''参数说明'''
 +
 +
appkey:对应应用的App Key,必填。
 +
 +
==JS SDK公开方法及说明==
 +
 +
===WB2.login(callback)===
 +
 +
----
 +
 +
'''函数说明'''
 +
 +
微博登录认证功能。
 +
 +
'''参数说明'''
 +
 +
callback: 可选,登录后执行的回调函数。
 +
 +
'''返回值'''
 +
 +
 +
 +
'''示例'''
 +
 +
<pre>
 +
WB2.login(function(){
 +
//callback function
 +
});
 +
</pre>
 +
 +
===WB2.logout(callback)===
 +
 +
----
 +
'''函数说明'''
 +
 +
退出微博登录功能。
 +
 +
'''参数说明'''
 +
 +
callback: 可选,退出登录后执行的回调函数。
 +
 +
'''返回值'''
 +
 +
 +
 +
'''示例'''
 +
 +
<pre>
 +
WB2.logout(function(){
 +
//callback function
 +
});
 +
</pre>
 +
 +
===WB2.checkLogin()===
 +
 +
----
 +
'''函数说明'''
 +
 +
检查是否已经登录,已登录返回true,未登录返回false。
 +
 +
'''参数说明'''
 +
 +
无。
 +
 +
'''返回值'''
 +
 +
true:已登录;
 +
false:未登录。
 +
 +
'''示例'''
 +
 +
<pre>
 +
WB2.checkLogin();
 +
</pre>
 +
 +
===WB2.anyWhere(callback)===
 +
 +
----
 +
 +
'''函数说明'''
 +
 +
第三方与微博API进行数据交互及调用内置widget的入口函数。
 +
 +
'''参数说明'''
 +
 +
callback:必选回调函数,需指定一个形参W。
 +
 +
可以通过形参直接调用 widget 或者 parseCMD 直接读取开放平台API接口。
 +
 +
具体的调用方式见下文对 parseCMD 及 widget 调用的说明。
 +
 +
'''示例'''
 +
 +
<pre>
 +
WB2.anyWhere(function(W){
 +
W.parseCMD("/statuses/friends.json", function(sResult, bStatus){
 +
    alert(sResult);
 +
},{
 +
    method: 'post'
 +
});
 +
});
 +
</pre>
 +
 +
===parseCMD(sUri, oCallBack, oArgs, oOpts)===
 +
 +
----
 +
 +
'''函数说明'''
 +
 +
第三方与开放平台API接口进行数据请求的函数,必须在WB2.anyWhere中通过W对象调用。
 +
 +
'''参数说明'''
 +
 +
sUri:必选,传递给API的命令URI。
 +
 +
oCallBack:必选,API返回数据后的回调函数。
 +
 +
oArgs:可选还是必选,根据API的定义,传递给API的参数对象。
 +
 +
oOpts:可选,请求API的时候的类型,默认是 POST 方式。
 +
 +
'''示例'''
 +
 +
<pre>
 +
WB2.anyWhere(function(W){
 +
    // 获取评论列表
 +
W.parseCMD("/statuses/comments.json", function(sResult, bStatus){
 +
    if(bStatus == true) {
 +
alert(sResult);
 +
    }
 +
},{
 +
userid : 12345678
 +
},{
 +
    method: 'post'
 +
});
 +
});
 +
</pre>
 +
 +
==JS widget说明及示例==
 +
 +
===微博连接按钮===
 +
 +
 +
'''widget说明'''
 +
 +
第三方与微博进行连接的按钮,可实现登录与退出功能。
 +
 +
 +
'''参数说明'''
 +
 +
id:连接按钮元素ID,必填。
 +
 +
type:连接按钮样式,是登录前的按钮样式[1-7]和登录后的样式[1-5]的组合,可选,默认为"3,2"。
 +
 +
callback:回调函数对象,参数说明如下,
 +
 +
login: 登录后执行的回调函数,其参数为用户信息json对象;
 +
 +
logout: 退出登录后执行的回调函数;
 +
 +
'''示例'''
 +
 +
<pre>
 +
Html:<div id="wb_connect_btn"></div>
 +
Script:
 +
WB2.anyWhere(function(W){
 +
    W.widget.connectButton({
 +
        id: "wb_connect_btn",
 +
        type: '3,2',
 +
        callback : {
 +
            login:function(o){
 +
                alert(o.screen_name)
 +
            },
 +
            logout:function(){
 +
                alert('logout');
 +
            }
 +
        }
 +
    });
 +
});
 +
 +
</pre>
 +
 +
'''示例:'''
 +
http://jssdk.sinaapp.com/demo/button/loginButton.php
 +
 +
===微博关注按钮===
 +
 +
'''widget说明'''
 +
 +
可实现用户之间的关注功能。
 +
 +
 +
'''参数说明'''
 +
 +
id:绑定的标签的ID,必填。
 +
 +
nick_name:用户昵称,必填。
 +
 +
'''示例'''
 +
<pre>
 +
Html:  <span id="wb_follow_btn"></span>
 +
Script:
 +
WB2.anyWhere(function(W){
 +
    W.widget.followButton({
 +
        'id': "wb_follow_btn" //关注按钮容器ID
 +
        'nick_name': '姚晨' //用户昵称
 +
    });
 +
});
 +
</pre>
 +
 +
'''示例:'''
 +
 +
http://jssdk.sinaapp.com/demo/button/followButtonTag.html
 +
 +
===微博名片===
 +
 +
'''widget说明'''
 +
 +
显示用户名片,包括昵称、头像、关注数量、粉丝数量、微博数量、最新微博以及关注按钮功能等,支持单独处理及批量处理两种方式。
 +
 +
 +
'''参数说明'''
 +
 +
id:要显示名片的元素ID,必填。
 +
 +
tag:要处理的标签名称,如'a', 'span'等,默认为'a',即只对a标签进行处理(其他标签不做处理),选填。
 +
 +
search:是否为批量处理名片的标识, 为true时会自动识别指定标签里“@+昵称”,并进行批量替换,增加名片事件,为false时仅为单独定义。默认为false。
 +
 +
 +
'''示例'''
 +
<pre>
 +
Html: 
 +
 +
单独定义:
 +
<span id="card" href=" http://weibo.com " wb_screen_name="微博名称" >微博名称</span>
 +
<a id="wb_uid" wb_user_id="1052981072" href="http://www.woiweb.net" >woiweb</a>
 +
 +
批量定义:
 +
<div id="search">
 +
    <a wb_screen_name="flashsoft" href="http://weibo.com">flashsoft</a>
 +
    @woiweb
 +
</div>
 +
<div id="weibo_uid_area">
 +
    <a href="http://www.woiweb.net" wb_user_id="1052981072">woiweb</a>
 +
    <span wb_user_id="1639733600">金山</span>
 +
</div>
 +
 +
Script:
 +
 +
WB2.anyWhere(function(W){
 +
    W.widget.hoverCard({
 +
        id: "card"
 +
    });
 +
    W.widget.hoverCard({
 +
        id: "search",
 +
        search: true
 +
});
 +
    W.widget.hoverCard({
 +
        id: "wb_uid"
 +
    });
 +
    W.widget.hoverCard({
 +
        id: "weibo_uid_area",
 +
        tag: "span",
 +
        search: true
 +
    });
 +
});
 +
</pre>
 +
 +
'''示例:'''
 +
http://jssdk.sinaapp.com/demo/layer/card.html
 +
 +
===微博发布器===
 +
 +
'''widget说明'''
 +
 +
弹出微博发布器,发布微博。
 +
 +
 +
'''参数说明'''
 +
 +
id : 绑定的标签的ID,必填。
 +
 +
button_type : 按钮样式red/gray,默认为red
 +
 +
button_size : big/middle/small,默认为middle
 +
 +
button_text : 自定义button文字,默认为“发布到微博”
 +
 +
default_text : 文本框内容,默认为空
 +
 +
default_image : 预置图片地址,默认为空
 +
 +
toolbar : 工具栏[表情, 图片, 话题],默认为'face,image,topic',可增删工具栏模块和更换按钮位置
 +
 +
 +
'''示例'''
 +
<pre>
 +
Html:  <a href="javascript:;" id="publish" >发表微博</a>
 +
Script:
 +
WB2.anyWhere(function(W){
 +
    W.widget.publish({
 +
        'id' : 'publish'
 +
    });
 +
});
 +
</pre>
 +
 +
'''示例:'''
 +
 +
http://jssdk.sinaapp.com/demo/layer/publish.html
 +
 +
===微博好友选择器===
 +
 +
'''widget说明'''
 +
 +
好友选择器,包括相互关注、我的粉丝、我关注的人三个标签,标签可配,支持联想输入功能,可快速选择所需好友,选择后点击确定即可得到已选择的好友的信息。
 +
 +
 +
'''参数说明'''
 +
 +
id: 绑定的标签的ID,必填。
 +
 +
callback: 选择完成点击确定后执行的回调函数,参数为选择好友信息的数组对象。
 +
 +
limit: 限制选择好友数量,默认为-1,不限制选择数量。
 +
 +
tab: 好友选择器标签配置,可选。
 +
 +
list: 显示的标签及顺序,[1:相互关注, 2:我的粉丝, 3:我关注的人],可以根据需要选择各种组合,还可定制顺序,如[1], [3,2]。
 +
 +
index: 默认展开的标签,默认为第一个标签。
 +
 +
 +
<pre>
 +
Html:  <input id="but" type="button" value=" 显示选择器 " />
 +
Script:
 +
//回调函数,返回选择结果
 +
function cbk(data){
 +
    //do something.
 +
}
 +
WB2.anyWhere(function(W){
 +
    W.widget.selector({
 +
'id' : "but", //必选
 +
'callback' : cbk
 +
    });
 +
});
 +
</pre>
 +
 +
 +
'''示例:'''
 +
 +
http://jssdk.sinaapp.com/demo/layer/selector.html
 +
 +
==未支持的接口==
 +
 +
'''Jssdk目前暂不支持以下API接口:'''
 +
 +
 +
[[User/statuses/id]]
 +
 +
[[Statuses/upload]]
 +
 +
[[Statuses/repost]]
  
  

2014年7月16日 (三) 18:34的版本

JS SDK

概述

JS SDK for OAuth2.0是线上JS SDK的升级版本(V1版Weibo-JS),它较之前版本有较大改变:

1、它去掉了部署在第三方的xd.html跨域文件,使开发者开发使用更加简单方便。

2、Appkey的传递方式由原来的json方式改变为通过参数传递方式。

3、为兼容之前JSSDK,该版JSSDK的命名空间由原来的WB改变为WB2。

4、该版本同时将Js widget同时内置其中,用户无需自已再去单独引用JS和CSS,只需调用相应的js widget方法即可。

5、支持通过版本号调用js widget,以便不同开发者不同的需要。

下面我们来一起体验一下这些特性。

应用信息修改

为了保证您的应用的安全,在您使用Weibo-JS时,需要您在应用信息页面为该应用选定绑定域名功能,并绑定您的域名,我们将以此域名来判定Weibo-JS API请求来源的合法性,不合法的请求将被拒绝。

绑定域名的操作可以在应用创建页面及编辑页面完成。选择“绑定域名”,填入域名提交即可。

引用JSSDK JavaScript文件

在页面顶端加入如下代码

<script src=" http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=3168919025" type="text/javascript" charset="utf-8"></script>


参数说明

appkey:对应应用的App Key,必填。

JS SDK公开方法及说明

WB2.login(callback)


函数说明

微博登录认证功能。

参数说明

callback: 可选,登录后执行的回调函数。

返回值

示例

WB2.login(function(){
//callback function
});

WB2.logout(callback)


函数说明

退出微博登录功能。

参数说明

callback: 可选,退出登录后执行的回调函数。

返回值

示例

WB2.logout(function(){
//callback function
});

WB2.checkLogin()


函数说明

检查是否已经登录,已登录返回true,未登录返回false。

参数说明

无。

返回值

true:已登录; false:未登录。

示例

WB2.checkLogin();

WB2.anyWhere(callback)


函数说明

第三方与微博API进行数据交互及调用内置widget的入口函数。

参数说明

callback:必选回调函数,需指定一个形参W。

可以通过形参直接调用 widget 或者 parseCMD 直接读取开放平台API接口。

具体的调用方式见下文对 parseCMD 及 widget 调用的说明。

示例

WB2.anyWhere(function(W){
W.parseCMD("/statuses/friends.json", function(sResult, bStatus){
    alert(sResult);
},{
    method: 'post'
});
});

parseCMD(sUri, oCallBack, oArgs, oOpts)


函数说明

第三方与开放平台API接口进行数据请求的函数,必须在WB2.anyWhere中通过W对象调用。

参数说明

sUri:必选,传递给API的命令URI。

oCallBack:必选,API返回数据后的回调函数。

oArgs:可选还是必选,根据API的定义,传递给API的参数对象。

oOpts:可选,请求API的时候的类型,默认是 POST 方式。

示例

WB2.anyWhere(function(W){
    // 获取评论列表
W.parseCMD("/statuses/comments.json", function(sResult, bStatus){
    if(bStatus == true) {
alert(sResult);
    }
},{
	userid : 12345678
},{
    method: 'post'
});
});

JS widget说明及示例

微博连接按钮

widget说明

第三方与微博进行连接的按钮,可实现登录与退出功能。


参数说明

id:连接按钮元素ID,必填。

type:连接按钮样式,是登录前的按钮样式[1-7]和登录后的样式[1-5]的组合,可选,默认为"3,2"。

callback:回调函数对象,参数说明如下,

login: 登录后执行的回调函数,其参数为用户信息json对象;

logout: 退出登录后执行的回调函数;

示例

Html:<div id="wb_connect_btn"></div>
Script:
WB2.anyWhere(function(W){
    W.widget.connectButton({
        id: "wb_connect_btn",
        type: '3,2',
        callback : {
            login:function(o){
                alert(o.screen_name)
            },
            logout:function(){
                alert('logout');
            }
        }
    });
});

示例: http://jssdk.sinaapp.com/demo/button/loginButton.php

微博关注按钮

widget说明

可实现用户之间的关注功能。


参数说明

id:绑定的标签的ID,必填。

nick_name:用户昵称,必填。

示例

Html:  <span id="wb_follow_btn"></span>
Script:
WB2.anyWhere(function(W){
    W.widget.followButton({
        'id': "wb_follow_btn"	//关注按钮容器ID
        'nick_name': '姚晨'	//用户昵称
    });
});

示例:

http://jssdk.sinaapp.com/demo/button/followButtonTag.html

微博名片

widget说明

显示用户名片,包括昵称、头像、关注数量、粉丝数量、微博数量、最新微博以及关注按钮功能等,支持单独处理及批量处理两种方式。


参数说明

id:要显示名片的元素ID,必填。

tag:要处理的标签名称,如'a', 'span'等,默认为'a',即只对a标签进行处理(其他标签不做处理),选填。

search:是否为批量处理名片的标识, 为true时会自动识别指定标签里“@+昵称”,并进行批量替换,增加名片事件,为false时仅为单独定义。默认为false。


示例

Html:  

单独定义:
<span id="card" href=" http://weibo.com " wb_screen_name="微博名称" >微博名称</span>
<a id="wb_uid" wb_user_id="1052981072" href="http://www.woiweb.net" >woiweb</a>

批量定义:
<div id="search">
    <a wb_screen_name="flashsoft" href="http://weibo.com">flashsoft</a>
    @woiweb
</div>
<div id="weibo_uid_area">
    <a href="http://www.woiweb.net" wb_user_id="1052981072">woiweb</a>
    <span wb_user_id="1639733600">金山</span>
</div>

Script:

WB2.anyWhere(function(W){
    W.widget.hoverCard({
        id: "card"
    });
    W.widget.hoverCard({
        id: "search",
        search: true
	}); 
    W.widget.hoverCard({
        id: "wb_uid"
    });	
    W.widget.hoverCard({
        id: "weibo_uid_area",
        tag: "span",
        search: true
    });
});

示例: http://jssdk.sinaapp.com/demo/layer/card.html

微博发布器

widget说明

弹出微博发布器,发布微博。


参数说明

id : 绑定的标签的ID,必填。

button_type : 按钮样式red/gray,默认为red

button_size : big/middle/small,默认为middle

button_text : 自定义button文字,默认为“发布到微博”

default_text : 文本框内容,默认为空

default_image : 预置图片地址,默认为空

toolbar : 工具栏[表情, 图片, 话题],默认为'face,image,topic',可增删工具栏模块和更换按钮位置


示例

Html:  <a href="javascript:;" id="publish" >发表微博</a>
Script:
WB2.anyWhere(function(W){
    W.widget.publish({
        'id' : 'publish'
    });
});

示例:

http://jssdk.sinaapp.com/demo/layer/publish.html

微博好友选择器

widget说明

好友选择器,包括相互关注、我的粉丝、我关注的人三个标签,标签可配,支持联想输入功能,可快速选择所需好友,选择后点击确定即可得到已选择的好友的信息。


参数说明

id: 绑定的标签的ID,必填。

callback: 选择完成点击确定后执行的回调函数,参数为选择好友信息的数组对象。

limit: 限制选择好友数量,默认为-1,不限制选择数量。

tab: 好友选择器标签配置,可选。

list: 显示的标签及顺序,[1:相互关注, 2:我的粉丝, 3:我关注的人],可以根据需要选择各种组合,还可定制顺序,如[1], [3,2]。

index: 默认展开的标签,默认为第一个标签。


Html:  <input id="but" type="button" value=" 显示选择器 " />
Script:
//回调函数,返回选择结果 
function cbk(data){
    //do something.
}
WB2.anyWhere(function(W){
    W.widget.selector({
	'id' : "but",	//必选 
	'callback' : cbk
    });	
});


示例:

http://jssdk.sinaapp.com/demo/layer/selector.html

未支持的接口

Jssdk目前暂不支持以下API接口:


User/statuses/id

Statuses/upload

Statuses/repost