PHPでtweetしてみた!!!
こんにちは、夏休みをstay homeで堪能しているたけるです。
突然PHPでtweetしたくなったので、実際にtweetしてみました。
twitter apiを使う方法がありますが、英語で申請したり結構めんどくさかった気がします。(※以前pythonでapi使って遊んでました。)
なので今回はIFTTTというサービスを使いたいと思います。
ifttt.com
IFTTTについて知りたい方は、以前IFTTTについて書いた記事あるので、よかったらどうぞ!!!
作り方
まずIFTTTでWebhooksとTwitterを使い、以下の構成のアプレットを作ってください!!!
上記画面のtwitterのedit部分を押しtweet内容を作ります。
「PHPでTweetしました!!!」は固定で、Value1の部分をtextareaで入力した文字が入るようにします。
そして上記ページ画面のDocumentationから key と リクエスト用のurlを取得します。
これで準備完了です。
次にPHPのコードです。
<?php $key = "自分のkeyを指定してください"; $url = "https://maker.ifttt.com/trigger/イベント名を指定してください/with/key/".$key; if (!empty($_POST)) { $values = array( 'value1' => $_POST['tweet'] ); $curl = curl_init($url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($values)); $response = curl_exec($curl); curl_close($curl); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>テストツイート</title> </head> <body> <form action="" method="post"> <textarea name="tweet" cols="50" rows="10"></textarea> <button>ツイート</button> </form> </body> </html>
ソースコードの説明
cURL関数についてのドキュメント
PHP: cURL 関数 - Manual
第1引数にはcurl_initが返すcURLハンドルを指定する。
第2引数にはオプション指定
- CURLOPT_POST trueと指定することでhtmlのformと同じ形式でpostできる
- CURLOPT_RETURNTRANSFER trueと指定することでcurl_execの返り値を文字列にできる ※特に今回のプログラムに関係ありません。
- CURLOPT_POSTFIELDS postで送るデータを指定する。データの形式として、a=1&b=2みたいな形式や連想配列などを指定できる。本プログラムでは
PHP: http_build_query - Manual
↑
を使い、データを指定した。