2012-07-24 68 views
0

我正在使用Omni認證來驗證我的Rails應用程序中的Twitter帳戶。當使用Omniauth(Rails)時Twitter uid爲空

我能能之前得到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?

更新:

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

後才

其實我加入客戶端選項授權路徑initializers/omniauth.rb像下面 (這樣只有授權將包括prvilege訪問直接留言)這樣做我有這個問題與uid = null,當我刪除這個選項'client_options:{authorize_path:'/ oauth/authorize'}'其工作正常..

這個問題的任何解決方案?

回答

0

找到了答案。當authorize_path設置爲「/ OAuth的/授權」

uid字段爲空。 取而代之,我們可以通過以下方式獲取Twitter用戶ID:

auth['extra']['raw_info']['id'] 
相關問題