2/messages/receive
第178行: | 第178行: | ||
− | <h3> | + | <h3>3、位置类型私信消息:position</h3> |
<pre> | <pre> | ||
{ | { | ||
"id": 1211260020031347, | "id": 1211260020031347, | ||
− | "type": " | + | "type": "position", |
"receiver_id": 1902538057, | "receiver_id": 1902538057, | ||
"sender_id": 2489518277, | "sender_id": 2489518277, | ||
"created_at": "Mon Jul 16 18:09:20 +0800 2012", | "created_at": "Mon Jul 16 18:09:20 +0800 2012", | ||
− | "text": " | + | "text": "我在这里: http://t.cn/zQgLLYO", |
"data": { | "data": { | ||
− | "vfid": 821804459, | + | "longitude": "116.308586", |
− | "tovfid": 821804469 | + | "latitude": "39.982525" |
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | <div class="wiki_kit"> | ||
+ | {|width="100%" border="0" cellspacing="0" cellpadding="0" class="wiki_table" | ||
+ | <html><colgroup><col class="tbF1"/><col class="tbF2" /><col /></colgroup></html> | ||
+ | !colspan="3" scope="col" |<span id="返回值说明">返回值说明</span> | ||
+ | |- | ||
+ | |style="text-align:center; width: 12%"|属性 | ||
+ | |style="text-align:center;width: 12%"|值的类型 | ||
+ | |style="text-align:center;"|说明描述 | ||
+ | |- | ||
+ | |id | ||
+ | |string | ||
+ | |消息ID | ||
+ | |- | ||
+ | |type | ||
+ | |string | ||
+ | |mention | ||
+ | |- | ||
+ | |receiver_id | ||
+ | |int64 | ||
+ | |消息的接收者 | ||
+ | |- | ||
+ | |sender_id | ||
+ | |int64 | ||
+ | |消息的发送者 | ||
+ | |- | ||
+ | |created_at | ||
+ | |string | ||
+ | |消息创建时间 | ||
+ | |- | ||
+ | |text | ||
+ | |string | ||
+ | |原位置私信文本,没有时用默认文案“发送了一个位置” | ||
+ | |- | ||
+ | |data | ||
+ | |string | ||
+ | |消息内容 | ||
+ | |- | ||
+ | |data:longitude | ||
+ | |string | ||
+ | |经度 | ||
+ | |- | ||
+ | |data:latitude | ||
+ | |string | ||
+ | |纬度 | ||
+ | |} | ||
+ | |||
+ | |||
+ | <h3>4、语音类型私信和留言消息:voice</h3> | ||
+ | 说明:指定的蓝V需被授予接收“语音消息”权限,此接口才返回“语音消息”,申请可邮件 [mailto:open_api@sina.com open_api@sina.com] 。 | ||
+ | <pre> | ||
+ | { | ||
+ | "id": 1211260020031347, | ||
+ | "type": "voice", | ||
+ | "receiver_id": 1902538057, | ||
+ | "sender_id": 2489518277, | ||
+ | "created_at": "Mon Jul 16 18:09:20 +0800 2012", | ||
+ | "text": "发了一个语音消息", | ||
+ | "data": { | ||
+ | "vfid": 821804459, // 发送者用此ID查看语音 | ||
+ | "tovfid": 821804469 // 接收者用此ID查看语音 | ||
} | } | ||
} | } | ||
第208行: | 第271行: | ||
|type | |type | ||
|string | |string | ||
− | | | + | |voice |
|- | |- | ||
|receiver_id | |receiver_id | ||
第232行: | 第295行: | ||
|data:vfid | |data:vfid | ||
|string | |string | ||
− | | | + | |语音文件ID,发送者通过此ID读取语音 |
|- | |- | ||
|data:tovfid | |data:tovfid | ||
|string | |string | ||
− | | | + | |语音文件ID,接收者通过此ID读取语音 |
|} | |} | ||
<pre> | <pre> | ||
− | + | 查看(下载)蓝V接收到的语音方法一 | |
curl "https://upload.api.weibo.com/2/mss/msget?access_token=RECIPIENT_ACCESS_TOKEN&fid=TOVFID" | curl "https://upload.api.weibo.com/2/mss/msget?access_token=RECIPIENT_ACCESS_TOKEN&fid=TOVFID" | ||
− | 1,"RECIPIENT_ACCESS_TOKEN" | + | 1,"RECIPIENT_ACCESS_TOKEN":返回结果中接收者(recipient_id)通过OAuth2授权返回的access_token; |
+ | 2,"TOVFID":返回结果data字段中的tovfid。 | ||
+ | |||
+ | 查看(下载)蓝V接收到的语音方法二 | ||
+ | curl -u "USERNAME:PASSWORD" "https://upload.api.weibo.com/2/mss/msget?source=APPKEY&fid=TOVFID" | ||
+ | |||
+ | 1,"USERNAME:PASSWORD"为"recipient_id"(蓝V)的微博登录用户名和密码,此时方法二中的APPKEY应用所有者为"recipient_id"; | ||
2,"TOVFID":返回结果data字段中的tovfid。 | 2,"TOVFID":返回结果data字段中的tovfid。 | ||
</pre> | </pre> | ||
− | <h3> | + | <h3>5、图片类型私信和留言消息:image</h3> |
<pre> | <pre> | ||
{ | { | ||
"id": 1211260020031347, | "id": 1211260020031347, | ||
− | "type": " | + | "type": "image", |
"receiver_id": 1902538057, | "receiver_id": 1902538057, | ||
"sender_id": 2489518277, | "sender_id": 2489518277, | ||
"created_at": "Mon Jul 16 18:09:20 +0800 2012", | "created_at": "Mon Jul 16 18:09:20 +0800 2012", | ||
− | "text": " | + | "text": "发了一张图片", |
"data": { | "data": { | ||
− | " | + | "vfid": 821804459, // 发送者用此ID查看图片 |
− | " | + | "tovfid": 821804469 // 接收者用此ID查看图片 |
− | + | } | |
} | } | ||
</pre> | </pre> | ||
第277行: | 第346行: | ||
|type | |type | ||
|string | |string | ||
− | | | + | |image |
|- | |- | ||
|receiver_id | |receiver_id | ||
第293行: | 第362行: | ||
|text | |text | ||
|string | |string | ||
− | | | + | |私信内容 |
|- | |- | ||
|data | |data | ||
|string | |string | ||
− | | | + | |消息内容,纯文本私信或留言为空 |
|- | |- | ||
− | |data: | + | |data:vfid |
|string | |string | ||
− | | | + | |图片ID,发送者通过此ID读取图片 |
|- | |- | ||
− | |data: | + | |data:tovfid |
|string | |string | ||
− | | | + | |图片ID,接收者通过此ID读取图片 |
|} | |} | ||
+ | <pre> | ||
+ | 查看(下载)图片 | ||
+ | curl "https://upload.api.weibo.com/2/mss/msget?access_token=RECIPIENT_ACCESS_TOKEN&fid=TOVFID" | ||
+ | |||
+ | 1,"RECIPIENT_ACCESS_TOKEN":返回结果中接收者(receiver_id)通过OAuth2授权返回的access_token; | ||
+ | 2,"TOVFID":返回结果data字段中的tovfid。 | ||
+ | </pre> | ||
+ | |||
− | <h3> | + | <h3>6、被@消息:mention</h3> |
− | 说明:指定的蓝V需被授予接收“被@消息”权限,此接口才返回“被@ | + | 说明:指定的蓝V需被授予接收“被@消息”权限,此接口才返回“被@消息”,申请可邮件 [mailto:open_api@sina.com open_api@sina.com] 。 |
<pre> | <pre> | ||
{ | { |
2013年11月7日 (四) 00:01的版本
消息推送接口
功能: 消息推送接口,长连接微博推送服务,接收推送给指定蓝V用户的新消息。当有微博用户给蓝V发送新消息时,推送服务将此新消息格式化后由此长连接推送给该应用。
接口调用地址:https://m.api.weibo.com/2/messages/receive.json
HTTP请求方式:GET
是否需要登陆:是
接口请求参数 | |||
---|---|---|---|
参数名称 | 值的类型 | 是否必填 | 说明描述 |
source | string | true | 申请应用时分配的AppKey,调用接口时候代表应用的唯一身份。 |
uid | int64 | true | 需要接收的蓝V用户ID。 |
since_id | int64 | false | 上次连接断开时的消息ID。保存断开后5分钟内的新消息,可以通过since_id获取断开五分钟内的新消息。 |
注意事项
- 1、为确保应用及V用户信息安全,此接口必须在服务器端调用;
- 2、调用接口的登录帐号为该appkey的所有者,需要使用所有者帐号通过Base Auth的方式;
- 3、如appkey已绑定IP地址,调用接口的请求IP须为绑定的IP;
- 4、指定的uid用户为蓝V;
- 5、指定的uid用户已指定当前应用为其开发,且指定的uid用户已开启“开发模式”,详见:粉丝服务开发模式指南;
- 6、每条完整的新消息数据以json形式返回,默认采用UTF-8编码,且以\r\n分隔;
- 7、新消息来源用户为蓝V且已开启消息服务时,新消息不推送;
- 8、非常重要:此接口非短连接接口,需要以长连接方式调用;
- 9、非常重要:为缓解服务压力,请求建立后约每5分钟会自动断开(如未自动断开请用程序断开),应用需兼容根据最后一次
- 获取的新消息ID重新调此接口连接。
调用举例
curl -u "USERNAME:PASSWORD" "https://m.api.weibo.com/2/messages/receive.json?source=YOUR_APPKEY&uid=***" // "USERNAME:PASSWORD"为应用所有者用户名和密码(注意不是uid蓝V的,除非应用所有者和uid为同一用户)
蓝V可接收的用户行为消息类型
连接建立后,当蓝V有新消息时,微博消息服务通过此连接向应用推送新消息,当前支持的消息类型:
1、事件消息:event
{ "id": 1211260020031346, "type": "event", "receiver_id": 1902538057, "sender_id": 2489518277, "created_at": "Mon Jul 16 18:09:20 +0800 2012", "text": "事件消息", "data": { "subtype": "EVENT", "key": "EVENT_KEY" } }
返回值说明 | ||
---|---|---|
属性 | 值的类型 | 说明描述 |
id | string | 消息ID |
type | string | event |
receiver_id | int64 | 消息的接收者 |
sender_id | int64 | 消息的发送者 |
created_at | string | 消息创建时间 |
text | string | 默认文案。subtype为follow时为“关注事件消息”,为unfollow时为“取消关注事件消息”。 |
data | string | 消息内容 |
data:subtype | string | follow:关注事件,unfollow取消关注事件。 |
data:key | string | subtype为follow或unfollow时不返回 |
2、纯文本类型私信和留言消息:text
{ "id": 1211260020031346, "type": "text", "receiver_id": 1902538057, "sender_id": 2489518277, "created_at": "Mon Jul 16 18:09:20 +0800 2012", "text": "私信或留言内容", "data": {} }
返回值说明 | ||
---|---|---|
属性 | 值的类型 | 说明描述 |
id | string | 消息ID |
type | string | text |
receiver_id | int64 | 消息的接收者 |
sender_id | int64 | 消息的发送者 |
created_at | string | 消息创建时间 |
text | string | 私信内容 |
data | string | 消息内容,纯文本私信或留言为空 |
3、位置类型私信消息:position
{ "id": 1211260020031347, "type": "position", "receiver_id": 1902538057, "sender_id": 2489518277, "created_at": "Mon Jul 16 18:09:20 +0800 2012", "text": "我在这里: http://t.cn/zQgLLYO", "data": { "longitude": "116.308586", "latitude": "39.982525" } }
返回值说明 | ||
---|---|---|
属性 | 值的类型 | 说明描述 |
id | string | 消息ID |
type | string | mention |
receiver_id | int64 | 消息的接收者 |
sender_id | int64 | 消息的发送者 |
created_at | string | 消息创建时间 |
text | string | 原位置私信文本,没有时用默认文案“发送了一个位置” |
data | string | 消息内容 |
data:longitude | string | 经度 |
data:latitude | string | 纬度 |
4、语音类型私信和留言消息:voice
说明:指定的蓝V需被授予接收“语音消息”权限,此接口才返回“语音消息”,申请可邮件 open_api@sina.com 。
{ "id": 1211260020031347, "type": "voice", "receiver_id": 1902538057, "sender_id": 2489518277, "created_at": "Mon Jul 16 18:09:20 +0800 2012", "text": "发了一个语音消息", "data": { "vfid": 821804459, // 发送者用此ID查看语音 "tovfid": 821804469 // 接收者用此ID查看语音 } }
返回值说明 | ||
---|---|---|
属性 | 值的类型 | 说明描述 |
id | string | 消息ID |
type | string | voice |
receiver_id | int64 | 消息的接收者 |
sender_id | int64 | 消息的发送者 |
created_at | string | 消息创建时间 |
text | string | 私信内容 |
data | string | 消息内容,纯文本私信或留言为空 |
data:vfid | string | 语音文件ID,发送者通过此ID读取语音 |
data:tovfid | string | 语音文件ID,接收者通过此ID读取语音 |
查看(下载)蓝V接收到的语音方法一 curl "https://upload.api.weibo.com/2/mss/msget?access_token=RECIPIENT_ACCESS_TOKEN&fid=TOVFID" 1,"RECIPIENT_ACCESS_TOKEN":返回结果中接收者(recipient_id)通过OAuth2授权返回的access_token; 2,"TOVFID":返回结果data字段中的tovfid。 查看(下载)蓝V接收到的语音方法二 curl -u "USERNAME:PASSWORD" "https://upload.api.weibo.com/2/mss/msget?source=APPKEY&fid=TOVFID" 1,"USERNAME:PASSWORD"为"recipient_id"(蓝V)的微博登录用户名和密码,此时方法二中的APPKEY应用所有者为"recipient_id"; 2,"TOVFID":返回结果data字段中的tovfid。
5、图片类型私信和留言消息:image
{ "id": 1211260020031347, "type": "image", "receiver_id": 1902538057, "sender_id": 2489518277, "created_at": "Mon Jul 16 18:09:20 +0800 2012", "text": "发了一张图片", "data": { "vfid": 821804459, // 发送者用此ID查看图片 "tovfid": 821804469 // 接收者用此ID查看图片 } }
返回值说明 | ||
---|---|---|
属性 | 值的类型 | 说明描述 |
id | string | 消息ID |
type | string | image |
receiver_id | int64 | 消息的接收者 |
sender_id | int64 | 消息的发送者 |
created_at | string | 消息创建时间 |
text | string | 私信内容 |
data | string | 消息内容,纯文本私信或留言为空 |
data:vfid | string | 图片ID,发送者通过此ID读取图片 |
data:tovfid | string | 图片ID,接收者通过此ID读取图片 |
查看(下载)图片 curl "https://upload.api.weibo.com/2/mss/msget?access_token=RECIPIENT_ACCESS_TOKEN&fid=TOVFID" 1,"RECIPIENT_ACCESS_TOKEN":返回结果中接收者(receiver_id)通过OAuth2授权返回的access_token; 2,"TOVFID":返回结果data字段中的tovfid。
6、被@消息:mention
说明:指定的蓝V需被授予接收“被@消息”权限,此接口才返回“被@消息”,申请可邮件 open_api@sina.com 。
{ "id": 1211260020031346, "type": "mention", "receiver_id": 1902538057, "sender_id": 2489518277, "created_at": "Mon Jul 16 18:09:20 +0800 2012", "text": "被@的微博或评论文本信息", "data": { "subtype": "MENTION_TYPE, "key": "MENTION_KEY" } }
返回值说明 | ||
---|---|---|
属性 | 值的类型 | 说明描述 |
id | string | 消息ID |
type | string | mention |
receiver_id | int64 | 消息的接收者 |
sender_id | int64 | 消息的发送者 |
created_at | string | 消息创建时间 |
text | string | 被@的微博或评论文本信息 |
data | string | 消息内容 |
data:subtype | string | status:@的微博,comment:@的评论 |
data:key | string | 当subtype为status时为微博ID,为comment时为评论ID |
注意:需要对接收到的消息体type或subtype做兼容,当出现未知时可忽略此消息。
接口调用失败返回
{ "request": "/2/messages/receive.json", "error_code": "264XX", "error": "error message." }