質問: @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!' app/controllers/api/auth_controller.rb:28:in`verify_facebook_token!'
回答: > > @graph = Koala::Facebook::API.new(params[:facebook_token]) > > > この時に渡した params[:facebook_token] にユーザトークンが入ってしまっていないでしょうか? 少しややこしいのですが、まず /debug_token はユーザトークンではアクセスできない仕様となっています。 > > > > Permissions: An app access token or an app developer's user access token for the app associated with the input_token is required to access this endpoint. > > > かわりに、アプリトークンか開発者のユーザトークンを利用する必要があります。 (FB管理者で登録されている端末でエラーにならないのは、このためではないかと思われます) 多くの場合、恐らくアプリトークンを利用して /debug_token を叩くことになると思います。アプリトークンは、Graph API経由で生成することもできますが、アプリIDとapp secretをそのままアプリトークンとして利用することもできるようです。その場合、2つをパイプで繋いだ以下のような文字列をトークンとして使います。 `app_id|app_secret` 参考: これで解決すればよいのですが...お試しください。