当前位置: 首页 > 知识库问答 >
问题:

IOS twitter登录获取request_token错误

顾宸
2023-03-14

我试图得到request_token从https://api.twitter.com/oauth/request_token.但我总是得到以下错误。

“验证oauth签名和令牌失败”

以下是我的signature_base:

POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttp%3A%2F%2Fwww.google.com%26oauth_consumer_key%3DydxYUl45Mleo5LNyoExnAF4mY%26oauth_nonce%3D9C918901-EF8A-4B84-BDF5-B7E754C46397%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1415174195%26oauth_version%3D1.0

生成的身份验证标头为:

{
    Authorization = "OAuth oauth_version=\"1.0\", 
    oauth_nonce=\"9C918901-EF8A-4B84-BDF5-B7E754C46397\", 
    oauth_signature_method=\"HMAC-SHA1\", 
    oauth_consumer_key=\"ydxYUl45Mleo5LNyoExnAF4mY\", 
    oauth_timestamp=\"1415174195\", 
    oauth_callback=\"http://www.google.com\",
    oauth_signature=\"j6k3CY4Fr40SKAWiG%2B5%2BwkErdYc%3D\"";
}

我用我的密钥验证了签名,它是正确的。真的不知道问题出在哪里。。。

一个线索是,当oauth_callback根本不使用时,我可以获取请求令牌...请帮忙!

谢谢Lee

编辑:如果我不使用oauth\u回调,我可以获取请求令牌,并使用我在dev twitter网站中设置的回调。但是,我无法将其设置为我的应用程序的URL方案,因为它不是有效的URL。。。

共有2个答案

凤扬
2023-03-14

我也遇到了同样的问题。帮助方法如下。

由于错误和糟糕的文档,使用Twitter进行身份验证非常不舒服。我将极力推荐您使用以下两种方法之一:Github库,它有很好的文档记录并且易于实现。或者使用iOS社交框架编写自己的日志。

乜烨霖
2023-03-14

您没有正确编码oauth_callbackurl。

在签名库中,它应编码为:

oauth_callback%3Dhttp%253A%252F%252Fwww.google.com

然后在授权标头中显示为:

oauth_callback="http%3A%2F%2Fwww.google.com"
 类似资料:
  • 错误: TypeError:无法读取未定义的LoginForm c:/reactjs/hello-world/src/components/accountbox/LoginForm.js的属性“state”:23 2023 value={this.state.input.email}^24 onchange={this.handlechange}25 class=“form-control”26

  • 请求令牌和令牌密钥必须交换为访问令牌和令牌密钥。 为了请求访问令牌,消费者向服务提供商的访问令牌URL发出HTTP请求。服务提供商文档指定了此请求的HTTP方法,建议使用HTTP POST。请求必须按签名请求进行签名,并包含以下参数: oauth_consumer_key:消费者密钥。oauth_令牌:之前获得的请求令牌。oauth_signature_method:消费者用来签署请求的签名方法。

  • 错误: HTTP状态404–未找到 类型状态报告 消息/降级任务/ 说明源服务器找不到目标资源的当前表示形式,或不愿意透露存在该表示形式。 Apache Tomcat/7.0.90 代码:

  • 我试图将twitter登录选项添加到我的python应用程序中,我从web服务器收到以下错误: GET/social auth/login/twitter/HTTP/1.1“500 103190 403客户端错误:url禁止:https://api.twitter.com/oauth/request_token 我在本地主机上使用SSL开发环境django unicorn。我查看了Twitter回

  • 问题内容: 嗨,您已经用yeoman,grunt和bower创建了一个angularJS应用程序。我已经为应用程序启用了html5Mode。及其工作。但是,当我刷新页面(localhost:9000 / login)时,它说 这是应用程序结构 这是我的 app.js 路由 这是我的Gruntfile.js 我已经解决了这个问题。根据已接受的答案,我将Gruntfile.js更改为以下内容。 但是刷

  • cmf_get_current_user() 功能 获取当前登录的前台用户的信息,未登录时,返回false 参数 无 返回 array:用户信息;false表示未登录;