タイトルそのまんまの関数サンプルです。Twitter API が1.1になってから、ネット上の情報の大半が使えなくなっているので、書くことにしました。この関数を使えば、Twitterアカウントをグループで共有するというプログラムを作ることも可能になるかと思います。
tmhOAuth のダウンロード
Twitter API と PHP でプログラミングするなら、 tmhOAuth を使うと楽です。というより、これから公開する関数は、このモジュールを使っています。
ダウンロードしたら、twitterという名前のフォルダーを作って、その中へ解凍して下さい。
API情報の取得
Twitter Developers の?Manage Your Apps から API情報を取得して下さい。プログラムを動作させるには、
- Consumer Key (API Key)
- Consumer Secret (API Secret)
- Access Token
- Access Token Secret
が必要になります。このページでは、 API の取得方法は割愛します。「twitter api」とかで検索すると、上記の取得方法がいくらでも見つかります。希望があれば、書きますが。
Twitterへのツイートプログラムの作成
以下のコード内容をコピーして、t.php というファイルを作成して下さい。文字コードは、utf-8 で保存して下さい。また、「認証情報4つ」と書いている部分へ、上で取得したAPI情報を書き込んで下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
<?php //京都 //ここを空白にしても動作します。 $img_file_url_sou = "./test.jpg"; $img_file_url = realpath($img_file_url_sou); $txt = "テスト投稿です5"; if ($img_file_url){ $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime_type = finfo_file($finfo,$img_file_url) . "\n"; finfo_close($finfo); } tweet_post($txt,$mime_type,$img_file_url); function tweet_post($text,$mime_type,$img_file_url){ //認証情報4つ $consumerKey = ''; $consumerSecret = ''; $accessToken = ''; $accessTokenSecret = ''; //oauth_token=&oauth_token_secret=&user_id=185187887&screen_name=ryouji0223 $twConf = array( 'consumer_key' => $consumerKey, 'consumer_secret' => $consumerSecret, 'user_token' => $accessToken, 'user_secret' => $accessTokenSecret, 'curl_ssl_verifypeer' => false ); require './tmhOAuth-master/tmhOAuth.php'; $tmhOAuth = new tmhOAuth($twConf); if($img_file_url){ //画像を用意する $content_type = $mime_type; $endpoint = $tmhOAuth->url('1.1/statuses/update_with_media'); $imageName = basename($img_file_url); $params = array( 'media[]' => "@{$img_file_url};type={$content_type};filename={$imageName}", 'status' => "{$text}" ); }else{ $endpoint = $tmhOAuth->url('1.1/statuses/update'); $params = array( 'status' => "{$text}" ); } $code = $tmhOAuth->request('POST', $endpoint, $params, true, true); $data = json_decode($tmhOAuth->response[response],true); header("Content-type: text/html; charset=utf-8"); if($code == 200){ print<<<EOD <p>正常に投稿されました。 <a href="https://twitter.com/{$data['user']['screen_name']}/status/{$data['id_str']}" target="_blank">投稿はこちら</a></p> EOD; }else{ print<<<EOD <p>投稿に失敗しました。</p> EOD; } } ?> |
認証情報を書き込む箇所は以下の箇所です。
test.jpg の作成
フォルダー内へ、 test.jpg を置いて下さい。画像内容は何でも構いません。これらのことを全て行うと、以下のようなファイル構成になっているはずです。
以上で、作業は完了です。 t.php を実行して以下のような画面が出てくれば、問題無く投稿出来ています。