• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Twitter認証画面を2回目以降表示しない方法?)

Twitter認証画面を2回目以降表示しない方法

このQ&Aのポイント
  • Twitterの認証画面を表示させない方法について、教えてください。
  • TwitterのOAuth認証をさせるようなプログラムをPHPで作っています。ログイン処理時、1回目はOAuth認証画面を表示し、2回目以降は認証画面を表示させずにそのままCALLBACK URLに指定したページへリダイレクトさせたいのですが、うまく出来ず困っています。
  • サイトをいろいろ検索してみて、一度認証されたら、2回目以降に認証画面を表示させようとしたとき、勝手にリダイレクトされると思っていたのですが、何か特殊な処理がいるのでしょうか?それとも、そもそもそんな処理は出来ず、毎回認証画面が必要になるのでしょうか?とても困っています、どなたか知恵をお貸しいただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#251971
noname#251971
回答No.1

OAuthによるアプリケーション認証を行った際、最終的に /oauth/access_token にAPI よって AccessToken と AccessTokenSecret が取得されると思います。 # ここで説明されている最後の手順の所に出てくる「oauth_token」と「oauth_token_secret」のことです。 # https://dev.twitter.com/docs/auth/implementing-sign-twitter この AccessToken と AccessTokenSecret が、個々のユーザーからアプリケーションの認証を許可されたことの証となる情報です。 1度認証を行ってこの情報を取得したら、次回以降は認証過程を行わずにこれをそのまま利用することが出来ます。 (つまり、AccessToken と AccessTokenSecret を保存しておく必要があります。) アプリケーション側でたとえばAccess levelを変更したとか、 ユーザー側で、認証済みアプリケーションから該当アプリケーションを削除したとか、 といった場合には AccessToken と AccessTokenSecret は無効となり、 無効化されたものでAPIを利用しようとするとエラーになるため、 再度認証過程をし直してAccessToken と AccessTokenSecretを取得し直す必要があります。

yukie1101
質問者

お礼

ご指摘いただきました通り、Access TokenとAccess Token Secretが 無効になっておりました・・・。 正しい値を取得し直して確認したところ、 正常に処理を行うことができました。 本当に、ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • OAuth認証でtwitterにアクセスできません

    PHPでOAuth認証でtwitterにつぶやきを投稿するプログラムを作ってます。 twitterの画面までは飛ぶのですが。 こちらです。 このページに対するリクエスト・トークンがありません。アプリケーションがTwitterアカウントを使用するかどうかを確認するために必要な特殊キーです。 送信したサイトまたはアプリケーションに戻って再度お試しください。何らかの手違いがあったかもしれません。 という文章が出てきて、アプリ認証画面に飛びません。 twitterのdeveloperのページでちゃんと登録して、キーなどはちゃんと入力しました。 今はローカルで試しています。 該当のプログラムはこんな感じです。 ~~~~~~ $twitter = new tmhOAuth( array("consumer_key"=>"****","consumer_secret"=>"****")); $here = tmhUtilities::php_self(); session_start(); if(isset($_REQUEST["command"]))switch($_REQUEST["command"]){ case "authorize"; //OAuth認可,まずリクエストトークンを取得 $twitter->request("POST",$twitter->url("oauth/request_token",""), array("oauth_callback" => $here."?command=callback")); //リクエストトークンはコールバックを受けてアクセストークンする際に必要なのでセッションに格納 $_SESSION["request_token"] = $twitter->extract_params($twitter->response["response"]); //twitterの認証画面へリダイレクト header("Location:".$twitter->url("oauth/authorize","")."?oauth_token={$_SESSION['request_token']['oauth_token']}"); break; ~~~~~~

    • 締切済み
    • PHP
  • Twitter Oauth認証がエラーになります。

    現在Twitterログインアプリを作りいのですが、 下記のようなエラーが出てしまいます。 Fatal error: Class 'Codebird' not found in /var/www/html/callback.php on line 8 認証にはcodebird.phpというライブラリを使っております。 (https://github.com/mynetx/codebird-php 下記コードのソースもこちらです。) 分かる方がいらっしゃれば教えて原因を教えて頂けると非常に助かります。 宜しくお願い致します。。 以下仕様 <a href="callback.php">twitterでログイン</a> これをクリックすると、callback.phpに飛び認証が行われるという具合です。 callback.php内ではconfig.phpとcodebird.phpを読み込んでます。 以下callback.phpコード var_dump($me); が実行出来ず、先に記したエラーが起きます。 <?php require_once('config.php'); require_once('codebird.php'); session_start(); Codebird::setConsumerKey(CONSUMER_KEY, CONSUMER_SECRET); //上記の定数はconfig.phpに記載しており、スペルミスはありません。 $cb = Codebird::getInstance(); if (! isset($_GET['oauth_verifier'])) { // gets a request token $reply = $cb->oauth_requestToken(array( 'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] )); // stores it $cb->setToken($reply->oauth_token, $reply->oauth_token_secret); $_SESSION['oauth_token'] = $reply->oauth_token; $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; // gets the authorize screen URL $auth_url = $cb->oauth_authorize(); header('Location: ' . $auth_url); die(); } else { // gets the access token $cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); $reply = $cb->oauth_accessToken(array( 'oauth_verifier' => $_GET['oauth_verifier'] )); // $_SESSION['oauth_token'] = $reply->oauth_token; // $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; $cb->setToken($reply->oauth_token, $reply->oauth_token_secret); $me = $cb->account_verifyCredentials(); var_dump($me); exit; }

    • 締切済み
    • PHP
  • TwitterのOauth認証プログラムについて

    TwitterのOauth認証プログラムについて 現在、Oauth認証を使って、一般ユーザが認証確認後、 WEBから投稿できるシステムを作ろうとしています。 Oauth_TokenとOauth_Token_Secretは、 $tok = $to->getRequestToken(); で取得されたものを変数として保持して取得しようとしているのですが、 この2つの認証コードと、固有の consumer_keyとconsumer_secretを使用して 認証させ、投稿プログラム $req = $to->OAuthRequest("https://twitter.com/statuses/update.xml","POST",array("status"=> $tweet . " " . $url . " #" . $hash)); を実行させると、なぜか <?xml version="1.0" encoding="UTF-8" ?> - <hash> <request>/statuses/update.xml</request> <error>Could not authenticate you.</error> </hash> つまり、認証されてない状態になってしまいます。 Oauth_TokenとOauth_Token_Secretを取得している場所が間違っているのでしょうか? もしかしてこの2つのコードが逆だったのかもしれないと思い、 逆にして投稿してみたのですが、それでも同じエラー画面に飛んでしまいます。 なぜだか分かる方、いらっしゃいますか?

    • ベストアンサー
    • PHP
  • ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて

    ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて ツイッターのAPIを利用してアプリケーションを開発しています。 OAUTH認証でアクセストークンの取得まではできたのですが、 アクセストークンを使ってAPIにアクセスしたところページが 存在しないとの旨を伝えられました。 ↓実際のソース https://twitter.com/1/statuses/update.xml?in_reply_to_status_id=自分のID(アクセストークンで取得したもの)&oauth_consumer_key=OAUTHコンシューマキー&oauth_nonce=ランダム文字列&oauth_signature_method=HMAC-SHA1&oauth_timestamp=タイムスタンプ&oauth_token=アクセストークン&oauth_version=1.0&status=つぶやきたい内容&oauth_signature=署名 上記URLにheader()(リダイレクト)でアクセスしています。simplexml_load_file()や file_get_contents();だと何も取得できませんでした。 特に不安なのがin_reply_to_status_idの指定先と実際のリクエストの仕方が良く わからない事です。何とかして呟きたいのでご教示よろしくお願いいたします。

  • Twitterの認証に失敗する。

    ガラケーのN-03Dで、jigtwitを使いながらTwitterをしているものです。 jigtwi前々からHootsuiteに移行しようと思っていたので、昨日暇が出来た時にHootsuiteを開始しようとしました。 しかし、SNSを追加から、Twitterの認証画面(Twitterのパスワードを入力する)に行って、入力し、認証をしようとしたところ、 ログインボタンを押した後に 『SSL/TLS通信が切断されました。』 という画面が出て認証に失敗しました。 Twitbeamというものでも、「Twitterと認証」ボタンを押した後に、全く同じエラーが出ます。 分かりにくい説明でごめんなさい。 誰かこの解決法をご存じでしたら、ご回答をお願いします。

  • Twitterから認証コードが送られてきません。

    電話番号を確認してください。 Twitterアカウントに登録されている電話番号を確認してください: (電話番号) 電話で認証コードをお知らせします。通話料が発生する可能性があります。 という表示が突然現れ、Twitterにログインできず困っています。 コードを送信しても認証コードが送られてこず、再起動やSMSの受取設定の変更等色々しましたが送られてきませんでした。。登録した電話番号で以前は認証コードが送られてきたので電話番号のミスでは無いことは確かです。この場合、どうやったらログインできるのでしょうか。とりあえずTwitterの異議申し立てはしました。

  • ツイッターアカウントの確認だけしたい

    Oauth認証のサンプルプログラムをみると、どれも、入力されたアカウントに対していろいろ操作できる、このアプリに許可する・許可しないの画面が出るものばかりです。 ユーザーがツイッターのページをブラウザで開いていてログインしていれば、ツイッターのアカウント名だけ取得できるJavaプログラムのサンプルはないでしょうか?

  • ネットワークカメラの認証画面の消去方法

    OS:Windows Webブラウザ:IE6 使用するネットワークカメラ:Panasonic製品「BB-HCM381」 プログラム言語:ASP(VBScriptを使用) ネットワークカメラにアクセスする際に、認証画面が表示されまして、ID、パスワードを入力する画面になります。したい事は、認証画面を表示させたくないです。実現の仕方としては、認証画面を表示する前のASPファイルのプログラム処理において、IDとパスワードをここで取得し、いっきにカメラ映像画面ページへ飛ばしたいです。ちなみに、認証画面とカメラ映像画面ネットワークカメラに制御される画面なので、この画面を変更する事はできません。 よろしくお願い致します。

  • (3DS)twitterの画面表示がおかしいです

    3DSのインターネットブラウザでtwitterをしています。 (twitter公式「mobile.twitter.com」を使っています。) 数日ほど前から、 非公開のアカウントでログインした時のみ、 ホーム画面上のメニューが添付画像のようになってしまいました。 とても面倒なので困っています。 (カテゴリが違っていたら申し訳ありません。 他のアカウントでログインしても表示はおかしくならないので 3DSカテゴリではなくここに質問させて頂きました。) ちなみにPCからログインすると通常です。 過去の質問等探してみたのですが 見つけるのが下手なのか同じような質問が見つからなかったので、 質問させて頂きました。 回答よろしくお願いします。

  • 認証が通ったidを元にidテーブルを一覧表示する方法

    画面が3枚あります。 『ログイン.php』 ログイン名(uid)、パスワード(upass)を入力し、 認証.phpへ[uid]と[upass]をPOST送信する。 『認証.php』 上記ログイン.phpにてPOST送信された[uid]と[upass]を受け取り、 if条件文にて判定を行う。 uidとupassが合致していたならば、header("Location: ./一覧表示.php");に飛ぶ。 uidとupassの相違していたならば、header("Location: ./ログイン.php");に戻る。 『一覧表示.php』 認証が通ったuidを元にuidテーブルを一覧表示する。 最後の一覧表示.phpにて認証が通ったuidのみをテーブルに一覧表示させるには どのような処理を行えばよろしいのでしょうか? 私が思うに、認証.phpからさらにuidをPOST送信するものと考えておりますが、 header関数にてそれをどのようにして行うものかがわかりません。 以下に認証.phpの一部を記載しました。 ご教授のほどよろしくお願いします。 // ----- 認証 function chk_auth() { if ($_POST["uid"] and $_POST["upass"]) { $sql = "SELECT * FROM usr where uid = '".cnv_sqlstr($_POST["uid"])."'" ." and pass = '".cnv_sqlstr($_POST["upass"])."'"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); $row = mysql_fetch_array($res, MYSQL_ASSOC); if (mysql_num_rows($res) >= 1) { return TRUE; } else { return FALSE; } } else { return FALSE; } } //  処理開始 if (!chk_auth()) { header("Location: ./login2.php"); exit; } else { header("Location: ./itiran.php"); exit; }

    • 締切済み
    • PHP