###前提・実現したいこと
Twitter向けの簡易的な自動投稿サービスを作っていて、現在はライブラリ等使っていないのですが機能が増えてきたので簡略化のためにTwitterOAuthを導入することにしました。
以下のようなコードを書いたのですが、ターミナルから実行した場合は正常に動作するのにブラウザから開いた場合TwitterOAuthのインスタンス化のあたりで止まってしまいそこから先の処理が行われません。なぜでしょうか?
###該当のソースコード
PHP
1session_start(); 2require_once "twitteroauth/autoload.php"; 3use Abraham\TwitterOAuth\TwitterOAuth; 4define( 'C_KEY', 'コンシューマーキー' ); 5define( 'C_SEC', 'コンシューマーシークレット' ); 6 7class OAuth { 8 function tknrq() { 9 $cnct = new TwitterOAuth(C_KEY, C_SEC); 10 $rto = $cnct->oauth('oauth/request_token', array('oauth_callback' => 'コールバックURL')); 11 $_SESSION['ot'] = $rto['oauth_token']; 12 $_SESSION['otc'] = $rto['oauth_token_secret']; 13 $url = $cnct->url('oauth/authorize', array('oauth_token' => $rto['oauth_token'])); 14 return $url; 15 } 16 function tknrt() { 17 $rto['ot'] = $_SESSION['ot']; 18 $rto['otc'] = $_SESSION['otc']; 19 $cnct = new TwitterOAuth(C_KEY, C_SEC, $rto['ot'], $rto['otc']); 20 $ato = $cnct->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier'])); 21 return $ato; 22 } 23} 24 25$oauth = new OAuth; 26 27if( isset( $_GET['oauth_token'] ) && !empty( $_GET['oauth_token'] ) && isset( $_GET['oauth_verifier'] ) && !empty( $_GET['oauth_verifier'] ) ) { 28 $ato = $oauth->tknrt(); 29 print_r($ato); 30} else { 31 $url = $oauth->tknrq(); 32 print_r($url); 33 header('Location: ' . $url); 34}
###補足など
ソースは関連する部分だけを抜き出しています
ターミナルで実行した場合は$urlが正常に出力されます
ちなみにtknrq()内の1,2,5行目をコメントアウトして適当な文字列を返すようにした場合は表示されます
###実行環境
PHP5.6.4
さくらVPS CentOS 6.8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/30 22:46