【问题标题】:Evernote access token PythonEvernote 访问令牌 Python
【发布时间】:2018-07-25 04:39:08
【问题描述】:

我正在尝试按照文档here 通过 Python 检索 Evernote OAuth 访问令牌。但是,多次尝试,我无法检索临时访问令牌,这是这 3 条腿授权的第一步。

知道我在这里做错了什么吗?

import time
import base64
import random
import uuid
import urllib
import collections
import urllib.parse
import hmac
import hashlib
import binascii
import requests

def escape(s):
    return urllib.parse.quote(s, safe='~')
def get_nonce():
    return uuid.uuid4().hex

def stringify_parameters(parameters):
    output = ''
    ordered_parameters = {}
    ordered_parameters =     
    collections.OrderedDict(sorted(parameters.items()))

    counter = 1
    for k, v in ordered_parameters.items():
        output += escape(str(k)) + '=' + escape(str(v))
        if counter < len(ordered_parameters):
           output += '&'
           counter += 1

    return output

oauth_parameters={
'oauth_timestamp': str(int(time.time())),
'oauth_signature_method': "HMAC-SHA1",
'oauth_version': "1.0",
'oauth_nonce': get_nonce(),
'oauth_consumer_key': 'consumerkey',
'oauth_callback':'http://localhost'
}

string_parameters=stringify_parameters(oauth_parameters)
secret='secret'

signature = hmac.new(secret.encode(), string_parameters.encode(),hashlib.sha1).digest()
oauth_parameters['oauth_signature']=escape(base64.b64encode(signature).decode())

res=requests.get('https://sandbox.evernote.com/oauth?'+stringify_parameters(oauth_parameters))

print(res.status_code)

【问题讨论】:

    标签: python oauth evernote


    【解决方案1】:

    我认为您创建签名的方式不正确。这对我有用:

    key = (escape(secret)+'&').encode()
    message = ('GET&' + escape('https://sandbox.evernote.com/oauth') + '&' + escape(string_parameters)).encode()
    signature = hmac.new(key, message, hashlib.sha1).digest()
    oauth_parameters['oauth_signature'] = base64.b64encode(signature).decode()
    
    res = requests.get('https://sandbox.evernote.com/oauth?' + stringify_parameters(oauth_parameters))
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2019-11-11
    • 2019-12-08
    • 2012-05-07
    • 2016-08-05
    • 2013-02-20
    • 2019-02-24
    相关资源
    最近更新 更多