0

Twitter に承認を求めるスクリプトを作成しました。スクリプトを初めて実行すると、スクリプトは Twitter にリダイレクトされ、資格情報が json ファイルに保存されます。これは機能します。ただし、twitter からの認証ページは 2 回読み込まれます。おそらく、誰かがバグを見つけるのを手伝ってくれるでしょう。スクリプトは次のとおりです。

require('./vendor/autoload.php');

use TijsVerkoyen\Twitter\Twitter;

$twitter = new Twitter('xyz', 'xyz');
$response = $twitter->oAuthRequestToken('http://localhost:8888/tweeted-news/oauth-test.php');

$credentials = json_decode(file_get_contents('credentials.json'), true);

if (!isset($credentials['oauth_token'])) {
    $response = $twitter->oAuthAuthorize($response['oauth_token']);
    $response = $twitter->oAuthAccessToken($_GET['oauth_token'], $_GET['oauth_verifier']);
    file_put_contents('credentials.json', json_encode($response));
    var_dump('authorized');
} else {
    $twitter->setOAuthToken($credentials['oauth_token']);
    $twitter->setOAuthTokenSecret($credentials['oauth_token_secret']);
    var_dump('credentials');
}

var_dump($twitter->accountSettings());

このライブラリhttps://github.com/tijsverkoyen/TwitterOAuthを composer で使用しています。どうもありがとう。

4

1 に答える 1

1

else 行を削除します。var_dump('authorized') の後、OAuthToken と OAuthTokenSecret を設定する必要があります。したがって、コードは次のようになります。

if (!isset($credentials['oauth_token'])) {
    $response = $twitter->oAuthAuthorize($response['oauth_token']);
    $response = $twitter->oAuthAccessToken($_GET['oauth_token'], $_GET['oauth_verifier']);
    file_put_contents('credentials.json', json_encode($response));
    var_dump('authorized');
    $twitter->setOAuthToken($credentials['oauth_token']);
    $twitter->setOAuthTokenSecret($credentials['oauth_token_secret']);
    var_dump('credentials');
}
于 2013-03-22T16:50:18.137 に答える