Subscription Service User's Guide

跳转到: 导航, 搜索
第79行: 第79行:
 
Each keyword is separated by comma and the relationship is logical 'OR' for every keywords.
 
Each keyword is separated by comma and the relationship is logical 'OR' for every keywords.
  
The length of each keyword can’t exceed 12 Chinese characters.
+
The length of each keyword can’t exceed 36 Chinese characters.
  
Logical 'AND' and 'NOT' is supported within each keyword. For example, 'A B' represents logical 'AND' and 'A -B' represents logical 'NOT'.
+
Logical 'AND' and 'NOT' is supported within each keyword. For example, 'A B' represents logical 'AND' and 'A -B' represents logical 'NOT'. If the keyword is surrounded by double quotation mark, it means the absolute match of the keyword. For example, "A B" doesn't represent the logical "AND".
  
 
The total number of sub-keywords within each keyword separated by logical symbol is 1000.
 
The total number of sub-keywords within each keyword separated by logical symbol is 1000.

2016年1月19日 (二) 19:35的版本

目录

Overview

The subscription service of Weibo Platform makes the applications get the datas more efficiently. According to the subscription filters like keywords, users, and domains applications specified, the applications will be delivered the new datas that match the filters in real-time by the Weibo Platform, without needing to poll the APIs as before.


Advantages:

● The datas are for the real-time.

● Save the network resources.

● Provide the more full datas.

● Get the datas more efficiently.


Filters

● Push according to data types:

Either statuses or comments can be subscribed. A subscription can’t subscribe both of them. Default are statuses.


● Push according to users:

The max number is up to 10000 userids for each subscription. When subscribe for statuses, statuses created by the users specified will be delivered. When subscribe for comments, the statuses which are created by the users specified, the comments to the statuses will be delivered.


● Push according to keywords:

The max number is up to 10000 keywords for each subscription. When subscribe for statuses, statuses which contain one of the keywords specified will be delivered. When subscribe for comments, comments which contain one of the keywords specified will be delivered or the statuses which are commented contain one of the keywords specified, the comments will be delivered.


● Push according to domains:

The max number is up to 20 domains for each subscription. When subscribe for statuses, statuses which contain the short links that one of the short links which original link contains one of the domains specified will be delivered. When subscribe for comments, the statuses which are commented contain the short links that one of the short links which original link contains one of the domains specified, the comments will be delivered.


● Push according to applications:

The application can only be delivered the statuses or comments which were created by the application itself. Or be delivered the datas created by all the applications on Weibo Platform.


● Push according to media types:

Only when the statuses are subscribed is the filter valid. There are five media types: ‘original’, ‘repost’, ‘video, ‘music’, ‘picture’. The statuses which fit the media types specified will be delivered.


● Push according to a percentage specified:

The datas of a percentage of the full datas that fit all the filters above will be delivered. Default is 1 percent.


● Push according to a time range specified:

Applications can specify the start time and the end time of the pushing. Pushing server will be ready when arrives at the start time. And the pushing will be terminated when arrives at the end time. If not specified, the start time is equal the time the subscription was created. And the pushing has no end. When the pushing server is ready, applications can connect the pushing APIs to get the datas.


Steps

Using the subscription service, there are several steps as follows:

subscription_en.png


① Creates a subscription:

Developers fill out the subscription service application form, providing filters and other information. Weibo Platform will create the subscription according to the information provided in the form. Multiple subscriptions can be created for each application.


② Sets subscribed keywords and users:

If ‘no’ is selected in the fields of ‘Users’ and ‘Keywords’ in the subscription service application form,applications need ignore this step. If ‘yes’ is selected, the keyword and user subscription list must not be empty. Call the API to subscribe keywords and users: subscribe/update_subscribe


The IP address to call the API must be one of the IP list provided when created the subscription. Otherwise, the error response ‘Ip is limited’ will be returned. If just parameter ‘subid’ is passed, the subscription information included the keywords and users list will be returned.


Each keyword is separated by comma and the relationship is logical 'OR' for every keywords.

The length of each keyword can’t exceed 36 Chinese characters.

Logical 'AND' and 'NOT' is supported within each keyword. For example, 'A B' represents logical 'AND' and 'A -B' represents logical 'NOT'. If the keyword is surrounded by double quotation mark, it means the absolute match of the keyword. For example, "A B" doesn't represent the logical "AND".

The total number of sub-keywords within each keyword separated by logical symbol is 1000.

The number of keywords parameter ‘add_keywords’ specified can’t exceed 20 per request. And the number of users parameter ‘add_uids’ specified can’t exceed 50 per request. The total number of keywords or users subscribed can’t exceed 10000 for each subscription.The keywords and users can’t be subscribed repeatedly.

Weibo Platform may protect some keywords and users when needed. Protected keywords and users can’t be subscribed. If a keyword is protected, the keywords that contain the protected keyword can’t be subscribed. The keywords and the datas filtered are not case-sensitive and don’t distinguish between Simplified and Traditional Chinese.


③ Pushing server is ready:

If developers did not provide the start time of the pushing, the start time is equal the time the subscription was created. Pushing server will be ready when arrives at the start time.


④ Application connects and pushing starts:

Only when the pushing server is ready can applications connect the pushing APIs, then pushing starts. Applications will receive the error information if the pushing server is not ready.


The pushing APIs are as follows:

● Subscribing for statuses, connect the API:datapush/status

● Subscribing for comments, connect the API:datapush/comment


See java example for connecting the APIs.


⑤ Application receives datas:

Statuses or comments will be delivered to the application after connecting the pushing APIs successfully. The statuses or comments are JSON UTF-8 encoded datas. Every whole message is separated by \r\n and is less than 4096 bytes. Therefore, to make sure you get the whole message, break out each message on \r\n boundaries.


See the responses for details.


⑥ Pushing ends:

If the end time is not specified, the pushing has no end. The pushing will be terminated when arrives at the end time. The subscription can’t be restarted.

Specifications

Applications keep a persistent HTTP request to pushing APIs:‘/datapush/status’ and ‘/datapush/comment’ to get datas. Parameter subid must be passed to indicate which subscription datas should be delivered. Error codes will be returned when request in a wrong way.


In order to reduce the server pressure, pushing server will disconnect every ten minutes, so that the pushing APIs have to be re-requested with the data ID application hold when disconnected as the value of since_id parameter to be passed like ‘/datapush/status?subid=xxx&since_id=XXX’ . Applications can continue to get datas from the point that disconnected. Consequently, applications should reserve the data ID when disconnected.


Because the subscription service is real-time, Weibo Platform only store datas for five minutes when disconnect. If the disconnected time exceeds five minutes, since_id parameter will not be supported. In that case, the error response ‘param since_id is illegal’ will be returned if since_id to be passed.


When the application uses the subscription service illegally, the subscription of the application will be suspended, that is the datas will not be delivered. The subscription can be restarted when the problems to be resolved. Then applications need to re-request the pushing APIs with the persistent HTTP connection.


In addition, the IP address to request the pushing APIs must be one of the IP list provided when created the subscription. Otherwise, the error response ‘Ip is limited’ will be returned.

Statuses

The service statuses will be displayed in the ‘Developer Management Center’ as follows:

subscription_start.png

There are five statuses: in preparation, ready, start, suspension, termination.


● in preparation:

After the subscription is created, the pushing server will be ‘in preparation’ when not arrives at the start time of the pushing specified by the application. If the start time is not specified, there will not have the ‘in preparation’ status. The pushing server will enter the status of ‘ready’ immediately after the subscription is created.


● ready:

After the subscription is created, only when the start time of the pushing specified by the application has already arrived at and the application has not connected the pushing APIs, will the pushing server be the status of ‘ready’. When the start time of pushing is not specified and the application has not connected the pushing APIs, the pushing server will be the status of ‘ready’ too.


● start:

When the pushing server is at the status of ‘ready’ and the application has connected the pushing APIs, the pushing server will enter the status of ‘start’.


● suspension:

When the application uses the subscription service illegally, the subscription of the application will be suspended by Weibo Platform. Then the pushing server will enter the status of ‘suspension’.


● termination:

The pushing will be terminated when arrives at the end time of pushing specified by the application. If not specified, the pushing has no end. When the pushing terminates, the pushing server will enter the status of ‘termination’, that is the subscription is expired and can’t be restarted again.