QQ 分享 API

QQ登录】add_share

特别声明

1. 建议网站将请求的频率限制在每秒1次以下。如请求过于频繁,该接口将可能被禁用。 
2. 本接口不需要申请接口访问权限。

目录

[隐藏]

1 接口说明

第三方网站可以调用本分享接口,在用户授权的情况下,可以以用户的名义发布一条动态(feeds)到QQ空间,此外还可在腾讯微博上发一条微博(用户可自己选择是否转发到微博)。 
注意网站必须一次性将信息传输给本分享接口。 分享功能现在支持网页分享和视频分享。 本接口将替代【QQ登录】add_feeds接口。新接入的网站请使用本接口,原有已经使用了add_feeds接口的网站需要进行代码改造,迁移到新的接口上来。

两种场景下可以调用本分享接口: 1. 网站主动推送。当用户在网站上进行操作(例如上传视频,图片,发表评论等)后,以该用户的名义发布一条feeds到QQ空间中。  2. 用户主动分享。用户在网站上点击“分享”按钮,发布一条feeds到QQ空间中,分享某个视频,网页或者其它内容。

例如:某用户在某个第三方网站上对某个信息发表了评论,网站将以该用户的名义发表一条动态到QQ空间中,动态的具体展示如下:  add_share_1.png 

上图中的1-5标注对feeds的组成以及规格进行了说明:

1. 用户评论:用户在第三方网站发布的评论等UGC信息,对应的参数为“comment”,选填项。 2. 分享的内容标题,含源网页URL,点击跳转至第三方网站网页,对应的参数为“title”和“url”,必填项。 3. 详细描述:网页摘要,对应的参数为“summary”,选填项。 如果分享到微博平台,则摘要内容不会在微博中显示,若希望在微博中展示分享的内容,建议将重要信息在评论中进行描述。 4. 外部图片:引用外部图片(大小不超过100 x 100 px),对应的参数为“images”,选填项。 5. 来源网站名称及域名:标明分享的来源,对应的参数为“site”和“fromurl”,必填项

1.1 URL

OAuth2.0协议:https://graph.qq.com/share/add_share
OAuth1.0协议:http://openapi.qzone.qq.com/share/add_share

1.2 格式

JSON / XML

1.3 HTTP请求方式

POST

1.4 输入参数说明

各个参数请进行URL 编码,编码时请遵守 RFC 1738  (1)通用参数 -OAuth2.0协议必须传入的通用参数,详见这里

-OAuth1.0协议必须传入的通用参数,详见这里 
(2)私有参数

参数名称是否必须类型描述
title 必须 string feeds的标题,对应上文接口说明中的2。 

最长36个中文字,超出部分会被截断。

url 必须 string 分享所在网页资源的链接,点击后跳转至第三方网页,对应上文接口说明中2的超链接。
请以http://开头。
comment   string 用户评论内容,也叫发表分享时的分享理由,对应上文接口说明的1。

禁止使用系统生产的语句进行代替。
最长40个中文字,超出部分会被截断。

summary   string 所分享的网页资源的摘要内容,或者是网页的概要描述,对应上文接口说明的3。
最长80个中文字,超出部分会被截断。
images   string 所分享的网页资源的代表性图片链接",对应上文接口说明的4。
请以http://开头,长度限制255字符。

多张图片以竖线(|)分隔,目前只有第一张图片有效,图片规格100*100为佳。

format   string 定义API返回的数据格式。
取值说明:为xml时表示返回的格式是xml;为json时表示返回的格式是json。

注意:json、xml为小写,否则将不识别。format不传或非xml,则返回json格式数据。

type   string 分享内容的类型。4表示网页;5表示视频(type=5时,必须传入playurl)。
playurl   string 长度限制为256字节。仅在type=5的时候有效,表示视频的swf播放地址。
site 必须 string 分享的来源网站名称,请填写网站申请接入时注册的网站名称,对应上文接口说明的5。
fromurl 必须 string 分享的来源网站对应的网站地址url,对应上文接口说明中5的超链接。
请以http://开头。
nswb   string 值为1时,表示分享不默认同步到微博,其他值或者不传此参数表示默认同步到微博。

1.5 请求示例

1. 请求参数以OAuth2.0协议为例(敏感信息都用*号进行了处理,实际请求中需要替换成真实的值):

access_token=*************
oauth_consumer_key=200003
openid==********** 
format=xml
title=QQ空间
url=http://www.qzone.com/ 
comment=真不错
summary=我的生活我的时尚
images=http://imgcache.qq.com/QzonePortal_v2/city_v2/img/news_img/2011/0526/portal_new_1306376959_375.jpg

2. 对参数进行URL编码后拼接出的POST请求包:

POST /share/add_share HTTP/1.1 
Host: graph.qq.com 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 431 

access_token=*************&oauth_consumer_key=200003&openid=**********&title=QQ%E7%A9%BA%E9%97%B4&url=http
%3A%2F%2Fwww.qzone.com%2F&comment%3D%E7%9C%9F%E4%B8%8D%E9%94%99&summary=%E6%88%91%E7%9A%84%E7%94%9F%E6%B4%
BB%E6%88%91%E7%9A%84%E6%97%B6%E5%B0%9A&images=http%3A%2F%2Fimgcache.qq.com%2FQzonePortal_v2%2Fcity_v2%2F
img%2Fnews_img%2F2011%2F0526%2Fportal_new_1306376959_375.jpg

3.下面是Post请求的HTML Form代码,开发者可以使用此表单来测试(供PC网页使用):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
     <TITLE> New Document </TITLE>
     <META NAME="Generator" CONTENT="EditPlus">
     <META NAME="Author" CONTENT="">
     <META NAME="Keywords" CONTENT="">
     <META NAME="Description" CONTENT="">
  </HEAD>
  <BODY>
     <form action="https://graph.qq.com/share/add_share" method="post">
        access token<input value="********..." name="access_token" /><br>
        appid<input value="222222" name="oauth_consumer_key" /><br>
        openid<input value="="********" " name="openid" /><br>
        url<input value=" http://www.qzone.com/  " name="url" /><br>
        comment<input value="真不错" name="comment" /><br>
        summary<input value="我的生活我的时尚" name="summary" /><br>
        images<input value="http://imgcache.qq.com/QzonePortal_v2/city_v2/img/news_img/2011/0526/
portal_new_1306376959_375.jpg" name="images" /><br><br>
        <input type="submit" value="分享" />
     </form>
  </BODY>
</HTML>

1.6 返回参数说明

ret: 返回码

msg: 如果ret<0,会有相应的错误信息提示,返回数据全部用UTF-8编码

1.7 返回码说明

0: 正确返回 其它: 失败。

OpenAPI公共错误码说明详见:【QQ登录】公共返回码说明  本接口私有返回码说明如下:

错误码含义说明
1000 本接口私有参数错误,请根据上文的参数列表检查参数名及参数值是否正确。
3006 输入的文字内容信息包含敏感词汇,禁止分享。
3021 同一帐号连续分享了同一个URL。

可行的情况:该帐号先分享A链接,然后分享B链接,再分享A链接。
不可行的情况:该帐号连续两次分享A链接(不管间隔时间多少)。

3028 分享的频率太高超过系统设定正常值。
3034 空间被封,不能进行分享。
3037 系统检测到客户端操作异常需要输入验证码。
3046 1秒钟内,分享次数超过2次。
3047 存储时发生错误。
3048、3049 系统内部错误。

请通过企业QQ联系QQ登录支持人员,调查问题原因并获得解决方案。

3064 分享信息里包含有安全漏洞,禁止分享 。

1.8 正确返回示例

<?xml version="1.0" encoding="utf-8"?>
<data>
   <ret>0</ret>
   <msg><![CDATA[]]></msg>
</data>

1.9 错误返回示例

<?xml version="1.0" encoding="utf-8"?>
 <data>
   <ret>1000</ret>
   <msg><![CDATA[缺少必要输入参数]]></msg>
</data>

 

提交成功!

原文地址:https://www.cnblogs.com/diigu/p/3552918.html