我正在使用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
添加了授权路径的客户端选项,如下所示
(通过这样做,只有授权才会包括访问直接消息的prvilege)
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'}'它的工作正常...
针对此问题的任何解决方案?
答案 0 :(得分:0)
找到答案。
当 authorize_path 设置为“/ oauth / authorize”时,uid字段为空。 相反,我们可以使用下面的
来获取Twitter用户IDauth['extra']['raw_info']['id']