2016年5月25日水曜日

deviseでfacebookのgraph apiから日本語の名前を取得する

deviseを使ってfacebook認証を実装していて、初期の登録時に
facebookのgraph apiからユーザーの名前を取得していたのですが、
それがローマ字のものが取れていたので、
日本語名を取るにはどこかでlocaleを指定しないといけないのだろうと調べました。

初めにこの辺にたどり着いたので、それを元に実装してみましたが、日本語名は取れませんでした
https://github.com/plataformatec/devise/wiki/How-To:-OmniAuth-inside-localized-scope
https://gist.github.com/gurix/4ed589b5551661c1536a

次にたどり着いたのがこのあたりのページで、ここの内容を参考に
omniauthの設定にlocaleを設定したら、無事に日本語名が取れるようになりました。
http://qiita.com/eleven_2012/items/d8ef22a8928c65570b82
https://teratail.com/questions/25290

設定したのはこんな感じです
config.omniauth :facebook, '#{facebook ID}', '#{key}', locale: 'ja_JP', provider_ignores_state: true, scope: 'email, public_profile'

0 件のコメント:

コメントを投稿