質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.95%

facebookログイン認証でユーザー情報が取得できない(opauth)

受付中

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 1,857

isoyan

score 43

現在facebookでのログイン機能を実装しようとしており、苦戦しているため、質問させていただきます。
Opauthを使用しており、以下のサイトを参考に実装しています。
http://www.kaasan.info/archives/2694
http://shigurui.kirscheweb.com/?p=136

twitterでdebug($this->data);とするとユーザー情報を取得できるのですが、
facebookだと以下のようなデータが返ってきますが、どのようにしたらユーザー情報を取得できるかご教示いただければと助かります。

array(
    'error' => array(
        'provider' => 'Facebook',
        'code' => 'access_token_error',
        'message' => 'Failed when attempting to obtain access token',
        'raw' => null
    ),
    'timestamp' => '2015-08-12T01:04:57+02:00',
    'validated' => false
)

また上記画面が表示される前に一度キャプチャのような画面が表示されてから遷移します。

リソースとしては以下のように実装しています。
[bootstrap.php]
CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true));

/**
 * Facebook認証のためのstrategy
 */
Configure::write('Opauth.Strategy.Facebook', array(
    'app_id' => 'XXXXXX',
    'app_secret' => 'XXXXX'
));

[routes.php]
    Router::connect(
        '/opauth-complete/*',
        array('controller' => 'users', 'action' => 'opauth_complete')
    );
/**
 * ...and connect the rest of 'Pages' controller's URLs.
 */
    Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

/**
 * Load all plugin routes. See the CakePlugin documentation on
 * how to customize the loading of plugin routes.
 */
    CakePlugin::routes();

[UsersController.php]
......
public function opauth_complete() {
        $this->set('userInfo', $this->Auth->user());
        debug($this->data);
    }

なおfacebook apikeyとapisecretは取得しています。


![イメージ説明](3d781ae3c842a2d84da0a520882d1a6d.png)
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

Facebook APIのエラー内容はOAuthに必要なaccess_tokenが与えられていない、というエラーです。これはOAuthのコンシューマーがプロバイダを利用する際、識別するために必要なトークンです。たぶんこれが取得できていないのだと思います。

Opauthをインストールされているようなので、 CakePHPでOpauthを使ってFacebook認証 を参考に環境を構築されたのでしょうか?

FacebookのStrategyはインストール済みでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/12 11:16

    回答ありがとうございます。
    > CakePHPでOpauthを使ってFacebook認証を参考に環境を構築されたのでしょうか?
    はい。こちらのサイトを参考にしました。

    >FacebookのStrategyはインストール済みでしょうか?
    app/Plugin/Opauth/Strategy/Facebookに
    Strategyを配置しています。
    インストールしてきたフォルダをFacebookに名前を変えてStrategy配下に配置しています。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.95%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる