无法获取lyft api的访问令牌

时间:2016-12-01 17:10:42

标签: access-token lyft-api

我正在尝试使用lyft开发人员api。我创建了一个新的应用程序来获取客户端ID和客户端的秘密。我按照https://developer.lyft.com/docs/authentication中的步骤在我的python代码中获取访问令牌。但我总是得到错误,"未经授权的客户"。谁能指出我的错误?

def __init__(self):
    self.client_id = 'MY_ID'
    self.client_secret = 'MY_SECRET'

    # obtain access token
    self.token = self.__generate_token__()

    # define variables to be used in the request parameters
    token_val = 'Bearer '+self.token
    self.headers = {'Authorization':token_val}

def __generate_token__(self):
    url = 'https://api.lyft.com/oauth/token'

    # define request parameters
    payload = {"Content-Type": "application/json",
               "grant_type": "client_credentials",
               "scope": "public"}
    # request data
    res = requests.post(url,
                        data = payload,
                        auth = (self.client_id, self.client_secret))
    # extract the token from the response
    token = res.json()['access_token']
    return token

1 个答案:

答案 0 :(得分:0)

这是Java客户端的工作示例

https://github.com/yschimke/oksocial/blob/175bdbf66e312d8bdf79183a140c2c5270329cf2/src/main/java/com/baulsupp/oksocial/services/lyft/LyftClientAuthFlow.java

看起来不对的主要问题是发送" Content-Type"在POST数据体中而不是表示数据格式的标题。

看起来你应该发送requests api" json = payload"而不是"数据"。但我不是这个python API的专家。

上述java代码的卷曲等价物也可以使用

./gradlew clean build