推特开发者 推特 oauth1.0a 授权【推特开发者文档系列12】


关于推特开发者账号 elevated academic 请看此贴:

推特开发者账号申请权限

搜索微信公众号 twitterDeveloper 获得帮助


推特授权使用的还是oauth1.0的模式,官网介绍比较麻烦,也很不友好,所以下面将介绍一种简单的授权方法。

from __future__ import print_function

from requests_oauthlib import OAuth1Session


REQUEST_TOKEN_URL = 'https://api.twitter.com/oauth/request_token'
ACCESS_TOKEN_URL = 'https://api.twitter.com/oauth/access_token'
AUTHORIZATION_URL = 'https://api.twitter.com/oauth/authorize'

consumer_key = '********'
consumer_secret = '*********'


def get_auth_token():
    oauth_client = OAuth1Session(consumer_key, client_secret=consumer_secret,
                                 callback_uri='oob')

    resp = oauth_client.fetch_request_token(REQUEST_TOKEN_URL, )
    url = oauth_client.authorization_url(AUTHORIZATION_URL, auth_callback='oob')
    data = {
        "url": url,
        "oauth_token_secret": resp.get('oauth_token_secret')
    }
    return data


def get_access_token(oauth_token, oauth_token_secret, pincode):
    oauth_client = OAuth1Session(consumer_key, client_secret=consumer_secret,
                                 resource_owner_key=oauth_token,
                                 resource_owner_secret=oauth_token_secret,
                                 verifier=pincode)
    # try:
    #     resp = oauth_client.fetch_access_token(ACCESS_TOKEN_URL)
    # except ValueError as e:
    #     raise 'Invalid response from Twitter requesting temp token: {0}'.format(e)

    resp = oauth_client.fetch_access_token(ACCESS_TOKEN_URL)

    print('''Your tokens/keys are as follows:
        consumer_key         = {ck}
        consumer_secret      = {cs}
        access_token_key     = {atk}
        access_token_secret  = {ats}'''.format(
        ck=consumer_key,
        cs=consumer_secret,
        atk=resp.get('oauth_token'),
        ats=resp.get('oauth_token_secret')))

print(get_auth_token())  #1
get_access_token("111111111111111","22222222222",'333333333')  #2

1.先把consumer_keyconsumer_secret换成自己的
2.注释get_access_token("111111111111111","22222222222",'333333333'),运行代码,结果如下:
{'url': 'https://api.twitter.com/oauth/authorize?auth_callback=oob&oauth_token=111111111111111', 'oauth_token_secret': '22222222222'}
找个地方记下oauth_tokenoauth_token_secret参数的值

https://api.twitter.com/oauth/authorize?auth_callback=oob&oauth_token=111111111111111这个url复制到浏览器中,如果浏览器已经有登录好的推特账号,那么就会出现一个授权界面
image.png
点击授权应用程序,然后就会出现一个pincode
image.png
记住这个pincode。

3.把print(get_auth_token())注释。
get_access_token("111111111111111","22222222222",'333333333')的注释取消,把oauth_tokenoauth_token_secretpincode作为参数写进去,运行。
结果如下:
image.png
这样就完成了授权。

4.在postman中把刚才的参数写进去,postman如何使用twitter api可以在官网看到:https://documenter.getpostman.com/view/9956214/T1LMiT5U。
image.png

在postman中构造请求,ids的参数是授权用户的某个推文id:
https://api.twitter.com/2/tweets?tweet.fields=non_public_metrics&ids=***********&expansions=attachments.media_keys&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width,alt_text,non_public_metrics,promoted_metrics,organic_metrics

image.png

可以看到返回中出现了授权用户的推文访问量。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值