ホーム > カテゴリ > PHP・Laravel・CakePHP >

Twitterの連携アプリを作成する(他人のアカウントでつぶやく)

Twitterで連携アプリを作成する方法です。連携アプリは「他人のアカウントでつぶやく」方法をご紹介します。これさえ理解できればTwitterをマスターしたようなものだと思います。では、続きをご覧下さい。

事前準備などは「Twitterのつぶやきを自動で投稿する」をご覧下さい。

1. アプリを作成する

Twitterのアプリケーション管理へログインしてアプリケーションを作成します。

1.1 「Name」「Description」「Website」「Callback URL」を入力します。

項目説明
Nameアプリの名称
Description アプリの説明
Websiteアプリを実行するURL(ここで指定した以外のURLでは実行できません。)
Callback URLTwitterの認証後に移動するURL(とりあえずhttp://www.あなたのドメイン.com/callback.phpとする)

1.2 「Permissions」タブをクリックしてアクセスレベルを「Read and Write」に設定する。

1.3 画面右上付近にある「Test Oauth」を押下する。

ここで表示される「Consumer Key」「Consumer secret」をメモ帳等に保存します。Twitterの連携アプリではこの2つのキーを使用しますので厳重に保管して下さい。

2 プログラム(php)

アプリ連携を行うにはログインとコールバックの二つの画面が必要となります。

[ログイン画面(login.php)]

    session_start(); 
    
    require_once "twitteroauth/twitteroauth.php";  
    
    // Twitterのコンシューマー情報を使用してTwitterOAuthオブジェクトを生成します 
    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);

    // 認証後のコールバックURLを指定
    // ※本来はここに記述するのだが、エラーが出るので[https://apps.twitter.com]側で設定 
    $request_token   = $connection->getRequestToken();

    // リクエストトークンの取得(後で使用するのでセッションに保存)
    $_SESSION['request_token']        = $request_token['oauth_token'];
    $_SESSION['request_token_secret'] = $request_token['oauth_token_secret'];

    // 認証用URLの取得
    if ($connection->http_code == 200) {
       // 認証URLを取得する
       $url = $connection->getAuthorizeURL($request_token['oauth_token']);
    }else{
       $url = "error.html"; 
    }
    
    // ジャンプ
    header('Location: ' . $url) ;
    exit();    

[コールバック画面(callback.php)]

    session_start(); 
    
    require_once "twitteroauth/twitteroauth.php";  
    
    // リクエストト-クンを使用してユーザーのtwitter情報を取得する
    $connection = new TwitterOAuth(CONSUMER_KEY,CONSUMER_SECRET, 
                                   $_SESSION["request_token"],$_SESSION["request_token_secret"]);
    // twitterのユーザー情報の取得                 
    $access_token = $connection->getAccessToken($_GET['oauth_verifier']);
 
      // アクセストークン
      echo 'user_id:'     . $access_token['user_id'] . '<br />';
      echo 'screen_name:' . $access_token['screen_name'] . '<br />';    
      echo 'oauth_token:' . $access_token['oauth_token'] . '<br />';    
      echo 'oauth_token_secret:' . $access_token['oauth_token_secret'] . '<br />';

      echo "<br />";

      echo "<pre>";
      var_dump($access_token);
      echo "</pre>";

    // セッション変数を全て解除
    $_SESSION = array();
    
    // セッションクッキーの削除
    if (isset($_COOKIE[session_name()])) {
        setcookie(session_name(), '', time()-42000, '/');
    }         

    // セッションの破棄
    session_destroy();

[ログインの認証画面のサンプル]

さて、コールバック画面で他人のアカウントのアクセストークンが取得できたと思います。他人のアカウントでつぶやくには下記の4つが必要となります。

・コンシューマーキー
・コンシューマーシークレット
・$access_token['oauth_token'](アクセストークン)
・$access_token['oauth_token_secret'](アクセストークンシークレット)

この4つのIDを使用して「Twitterのつぶやきを自動で投稿する」のプログラム部分と同様な方法でつぶやく事ができます。ここで取得したアクセストークン、アクセスシークレットはDBなどに保存すると利便性が向上すると思います。

関連リンク集

Twitter(公式)
Twitter - Application Management(公式 - 開発者用)
TwitterAPI1.1 REST API 全項目解説
Twitter API 仕様書 ※古い
TwitterOAuthの説明など





関連記事



公開日:2015年02月03日
記事NO:00180