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

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

ただいまの
回答率

89.52%

TwitterOAuthでログイン認証時のエラーで困っています

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 486

komaneko

score 1

TwitterOAuthを利用して、Twitterアカウントでのログインを実装しています。

https://wepicks.net/twitter-restapi-login/
上記の記事を参考に、実装したところ問題なくログインすることができました。

しかし、Webサービスを公開したところ
私以外のユーザーが「error token!!」でログインできない事象が起こっております。

私のTwitterアカウントではログインできますが、
他のユーザーではログインできない原因は何でしょうか。

Twitterアプリケーションは登録しており、
Consumer API keysも正しく入力しています。

Twitterアプリケーションの登録画面にて表示される
「Access token & access token secret」
は、記述する箇所が特になかったのでどこにも入れておりません。
※これはユーザーごとに発行されるので、入れる意味はないという認識です。

プログラミング経験がまだ浅く、
エラー解決できずに困っております。

■気になる点
・自分以外のユーザーがログインできない

config.php

<?php
//アプリケーションの Consumer Key と Consumer Secret
$sTwitterConsumerKey = '●●●●●'; //Consumer Key (API Key)
$sTwitterConsumerSecret = '●●●●●'; //Consumer Secret (API Secret)

//アプリケーションのコールバックURL
$sTwitterCallBackUri = 'https://●●●●●/twitter-restapi/login/callback.php'; //コールバックURL

//変数初期化
$objTwitterConection = NULL; //TwitterOAuthクラスのインスタンス化
$aTwitterRequestToken = array(); //リクエストトークン
$sTwitterRequestUrl = ''; //認証用URL
$objTwitterAccessToken = NULL; //アクセストークン
$objTwUserInfo = NULL; //ユーザー情報
?>

login.php


callback.php

<?php
##############################################
### 初期設定

//セッションスタート
session_start();

//文字セット
header("Content-type: text/html; charset=utf-8");

//インクルード
require_once 'config.php';
require_once 'twitteroauth/autoload.php';

//インポート
use Abraham\TwitterOAuth\TwitterOAuth;

##############################################
### oauthトークン確認
if(empty($_SESSION['twOauthToken']) || empty($_SESSION['twOauthTokenSecret']) || empty($_REQUEST['oauth_token']) || empty($_REQUEST['oauth_verifier'])){
    echo 'error token!!';
    exit;
}
if($_SESSION['twOauthToken'] !== $_REQUEST['oauth_token']) {
    echo 'error token incorrect!!';
    exit;
}

##############################################
### アクセストークン作成

//取得したoauthトークンでTwitterOAuthクラスをインスタンス化
$objTwitterConection = new TwitterOAuth
                                        (
                                        $sTwitterConsumerKey,
                                        $sTwitterConsumerSecret,
                                        $_SESSION['twOauthToken'],
                                        $_SESSION['twOauthTokenSecret']
                                        );

//アクセストークンの取得
$_SESSION['twAccessToken'] = $objTwitterConection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));

//メンバーページへリダイレクト
header('location: member.php');

member.php

エラーが起きなければ、ここでDBにTwitterの情報を登録する処理をしています。

Twitterログイン認証の使用意図としましては、
Twitterで使われているアイコンやニックネーム、フォロー数などの情報をDBに保存し、Webサービス上で表示するという使い方をしています。

厳しいご意見も真摯に受け止めます。
皆様からのアドバイスをお待ちしております。

何卒、よろしくお願いいたします。

  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

0

error token!!を出しているのが、callback.php なのであれば、原因は明白なので、どの値が条件に合致しているか調査することが必要です。

他者のリソースを利用するのであれば、最低限条件分岐の切り分けはできていないとマズイです。api 利用の前に、デバッグ方法を学んでください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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