スマホアプリのFaceBooKログインでサーバーサイドのアクセストークンチェックでエラーになります。
<内容>
現在cordovaを使用したスマートフォンアプリを開発しています。
アプリ側でFBログインして取得したアクセストークンをサーバー側に送信し、
サーバーサイドで、再度トークンが正しいかFB認証してログインしたいのですが、
サーバーサイドで送られてきたトークンをチェックする際に下記のエラーが発生し、
解決できません。
「You must provide an app access token or a user access token that is an owner or developer of the app」
※FB管理者で登録している端末ではエラーにはなりません。一般ユーザーからのアクセスでエラーとなります。
アクセストークン、ユーザーID等の必要なパラメーターは取得できています。
<補足>
開発言語
クライアントサイド
・react.js
サーバーサイド
・ruby on rails
使用している端末
・iPhone(IOS9)
使用しているAPI
クライアントサイド・・・アクセストークン取得
・cordova-plugin-facebook4
サーバーサイド・・・アクセストークンのチェック
・koala(Graph API)
使用しているサーバー
・AWS
FBで使用しているPermissions(申請完了)
・email
・public_profile
・user_friends
・user_birthday
・user_work_history
ーーーーーー
エラー箇所のソース(rails)
def verify_facebook_token!
@graph = Koala::Facebook::API.new(params[:facebook_token])
# https://graph.facebook.com/debug_token? に問い合わせ
token_info = @graph.debug_token(params[:facebook_token]) ←ここでエラー# 期限切れなどになっていないかを確認 raise ArgumentError unless token_info['data']['is_valid'] # Facebook の user_id も確認する raise ArgumentError unless token_info['data']['user_id'].eql?(params[:facebook_id]) # app_id は最初にアプリを登録したときにわかっているので固定値 raise ArgumentError unless token_info['data']['app_id'].eql?(ENV['FACEBOOK_APP_ID']) rescue logger.info("is_valid: #{@graph.debug_token(params[:facebook_token])}") render template: 'api/v1/errors/facebook_token', status: 400 end
ーーーーーー
エラーログ
Koala::Facebook::ClientError (type: OAuthException, code: 100, message: (#100) You must provide an app access token or a user access token that is an owner or developer of the app, x-fb-trace-id: GjfLrs52rVy [HTTP 400]):
app/controllers/api/auth_controller.rb:34:in rescue in verify_facebook_token!'
verify_facebook_token!'
app/controllers/api/auth_controller.rb:28:in