0

我正在使用 Omni auth 在我的 rails 应用程序中验证 twitter 帐户。

我以前可以获取uid参数,但现在它返回 null 如下所示

{"provider":"twitter","uid":null,

"info":

{
"nickname":"boobalanv",
"name":"Boobalan",
"location":"",
"image":"<image url>",
"description":"",
"urls":
{
"Website":null,
"Twitter":"http://twitter.com/boobalanv"}},
"credentials":

我正在本地主机上对此进行测试。

我做错了什么还是 twitter 已停止提供用户 ID?

更新 :

实际上,我在initializers/omniauth.rb下面添加了用于授权路径的客户端选项(通过这样做,只有授权将包括访问直接消息的权限)

provider :twitter, Rails.application.config.consumer_key , Rails.application.config.consumer_secret , authorize_params: {force_login: 'true'}, client_options: {authorize_path: '/oauth/authorize'}

只有在这样做之后,我才遇到 uid = null 的问题,当我删除此选项'client_options:{authorize_path:'/oauth/authorize'}'它工作正常..

这个问题的任何解决方案?

4

1 回答 1

0

找到了答案。

authorize_path设置为"/oauth/authorize"时,uid 字段为空。相反,我们可以使用以下方法获取 Twitter 用户 ID

auth['extra']['raw_info']['id']
于 2012-08-27T13:56:39.583 回答