首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法获取lyft api的访问令牌

无法获取lyft api的访问令牌
EN

Stack Overflow用户
提问于 2016-12-02 01:10:42
回答 1查看 760关注 0票数 0

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

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

发布于 2016-12-26 15:45:47

这是一个Java客户端的工作示例

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

主要的错误是在POST数据主体中发送"Content-Type“,而不是作为标头来指示数据的格式。

requests api看起来,您应该发送"json = payload“而不是"data”。但是我不是这个python API的专家。

与上面的java代码等效的curl也可以工作。

代码语言:javascript
运行
复制
$ ./oksocial --curl --authorize lyft --client
Authorising Lyft API
Lyft Client Id [***********]:
Lyft Client Secret [********************************]:
curl -X POST -H "Authorization:Basic ******************" -H "Connection:Keep-Alive" -H "User-Agent:okhttp/3.5.0" -H "Host:api.lyft.com" -H "Accept-Encoding:gzip" -H "Content-Length:55" -H "Content-Type:application/json; charset=utf-8" -H "Content-Type:application/json; charset=utf-8" -d '{"grant_type": "client_credentials", "scope": "public"}' https://api.lyft.com/oauth/token
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40916484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档