栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Python 3从Twitter API检索请求令牌

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Python 3从Twitter API检索请求令牌

我所做的更改的概述:

  1. 我换出
    binascii.b2a_base64
    base64.standard_b64enpre
  2. 我使用该
    bytes.depre('ascii')
    方法将字节转换为字符串。str()似乎将b附加到字符串。
  3. 我将参数的顺序固定为
    hmac.new
    -而
    KEY, MESSAGE
    不是
    MESSAGE, KEY
  4. 我删除了对
    include_entities
    in的引用
    PARAMETER_STRING
    -如果您在请求中不使用include_entities(并且我认为对令牌请求没有意义),则不得将其包含在PARAMETER_STRING中
  5. oauth_callback=oob
    在开头添加了
    PARAMETER_STRING
    -除oauth_signature之外的所有oauth参数都必须包含在基本字符串中。
  6. 我更改了发出请求的部分,以预先创建Request对象,然后添加Authorization标头-您正在将Authorization标头作为HTTP正文发送。
  7. 为了匹配此更改,我从中删除了结尾的分号
    HEADER_TITLE
  8. 我在之后添加了缺少的分号
    oauth_callback="oob"

请享用!

这是您的代码的固定版本:

import urllib.parse, urllib.request, jsonfrom hashlib import sha1import hmacimport base64import timeimport randomimport sys#Server linksREQUEST_URL = "https://api.twitter.com/oauth/request_token";ACCESS_URL = "https://api.twitter.com/oauth/access_token";AUTHORIZE_URL = "https://api.twitter.com/oauth/authorize";#Consumer keysTOKEN = "Omitted"TOKEN_SECRET = "Omitted"#Access keysACCESS_TOKEN = ""ACCESS_TOKEN_SECRET = ""TWEET = ""count = 1while len(sys.argv) > count:TWEET += sys.argv[count] + " "count += 1TWEET = TWEET[:-1] #Get rid of trailing spaceprint(TWEET + "n")#Build content header for POST to return request tokensHEADER_TITLE = "Authorization"#Consumer keyHEADER = 'OAuth oauth_callback="oob", oauth_consumer_key="' + TOKEN + '", '#NonceHEADER += 'oauth_nonce="'NonCE = ""for i in range(32):NonCE += chr(random.randint(97, 122))HEADER += NonCEHEADER += '", '#TimestampTIMESTAMP = str(int(time.time()))#SignatureHEADER += 'oauth_signature="'PARAMETER_STRING = "oauth_callback=oob&oauth_consumer_key=" + TOKEN + "&oauth_nonce=" + NonCE + "&oauth_signature_method=HMAC-SHA1&oauth_timestamp=" + TIMESTAMP + "&oauth_version=1.0"base_STRING = 'POST&' + urllib.parse.quote(REQUEST_URL, '') + '&' + urllib.parse.quote(PARAMETER_STRING, '')SIGNING_KEY = urllib.parse.quote(TOKEN_SECRET, '') + '&'print("DEBUG : SIGNING KEY " + SIGNING_KEY + " base STRING " + base_STRING + "n")HEADER += urllib.parse.quote(base64.standard_b64enpre(hmac.new(SIGNING_KEY.enpre(), base_STRING.enpre(), sha1).digest()).depre('ascii'))HEADER += '", '#Signature MethodHEADER += 'oauth_signature_method="HMAC-SHA1", '#TimestampHEADER += 'oauth_timestamp="' + TIMESTAMP + '", '#VersionHEADER += 'oauth_version="1.0"'print(HEADER_TITLE + ":n" + HEADER)HTTP_REQUEST = urllib.request.Request(REQUEST_URL)HTTP_REQUEST.add_header(HEADER_TITLE, HEADER)print(urllib.request.urlopen(HTTP_REQUEST, bytes('', 'ascii')).read())


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号