Twitter Premium API沙箱:错误代码403

时间:2018-10-05 07:09:22

标签: twitter

我正在尝试通过Premium API Sandbox从Twitter抓取数据。

我构建了30天的高级API沙箱,以下是我发送请求的代码。

from TwitterAPI import TwitterAPI

consumer_key = 'XXX'
consumer_secret = 'XXX'
access_token = 'XXX'
access_token_secret = 'XXX'

api = TwitterAPI(consumer_key, consumer_secret, access_token, access_token_secret)
r = api.request('tweets/search/30day/:test.json', {'q' : 'python') //test is my own label

for item in r:
     print(item['text'])

但是,我一直收到错误代码403:

Traceback (most recent call last):
  File "Twitter_api_srch_full.py", line 11, in <module>
    for item in r:
  File "/anaconda3/lib/python3.6/site-packages/TwitterAPI/TwitterAPI.py", line 206, in __iter__
    return self.get_iterator()
  File "/anaconda3/lib/python3.6/site-packages/TwitterAPI/TwitterAPI.py", line 193, in get_iterator
    raise TwitterRequestError(self.response.status_code)
TwitterAPI.TwitterError.TwitterRequestError: Twitter request failed (403)

有人知道导致这种错误的潜在原因吗?

谢谢您的帮助:)

3 个答案:

答案 0 :(得分:0)

您在Premium API搜索中使用Search API的q参数。改为使用query,如下所示:

r = api.request('tweets/search/30day/:test', {'query' : 'python'}) 

答案 1 :(得分:0)

您的代码中有几个问题:

  1. 正在使用的标签不应以冒号开头或以.json结尾
  2. “ q”参数应为“ query”

TwitterAPI存储库中有一个sample,但是有一些作用:

from TwitterAPI import TwitterAPI

consumer_key = 'XXX'
consumer_secret = 'XXX'
access_token = 'XXX'
access_token_secret = 'XXX'

PRODUCT = '30day'
LABEL = 'development'

api = TwitterAPI(consumer_key, consumer_secret, access_token, access_token_secret)
r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), {'query' : 'python'}) 

for item in r:
     print(item['text'])

答案 2 :(得分:0)

由于TwitterAPI并不是Twitter Premium和Enterprise API的官方Python包装器,因此我强烈建议您使用search-tweets-python,因为它是twitterdev版本。

接下来,要安装 search-tweets-python ,您可以通过以下命令通过PyPi进行安装:

<div class="pt-3"> <table> <tr> <td><img src="https://d1yjjnpx0p53s8.cloudfront.net/styles/logo-thumbnail/s3/062013/huawei_0.jpg" width="96" height="48"></td> <td><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/170px-Apple_logo_black.svg.png" width="96" height="48"></td> </tr> </table> </div> <hr> <table>ILX A-SPEC 4P L4 2.4L QC NAVI R18 AUT 5 OCUP</table> <table> <tr> <td><button mat-button> <mat-icon>check_box_outline_blank</mat-icon> </button></td> <td><button mat-button> <mat-icon>check_box_outline_blank</mat-icon> </button></td> </tr> </table> <hr> <table>ILX A-SPEC 4P L4 2.4L QC</table> <table> <tr> <td><button mat-button> <mat-icon>check_box_outline_blank</mat-icon> </button></td> <td><button mat-button> <mat-icon>check_box_outline_blank</mat-icon> </button></td> </tr> </table> <hr>

您可以获取有关searchtweets PyPi package最新版本的更多信息。

安装后,您需要按照https://github.com/twitterdev/search-tweets-python/blob/master/examples/credential_handling.rst创建一个 .yaml 文件,在这种情况下,使用30天的SandBox搜索将如下所示:

enter image description here

一旦创建了python -m pip install searchtweets文件,就可以通过Python开始使用Premium Twitter API,您所用的代码或多或少像:

twitter_api_premium_credentials.yaml

如上面的代码所示,您正在导入需要使用的功能,以检索推文,使用凭证获取承载令牌,生成查询或规则有效载荷并获取推文。

>

希望这对您有所帮助!