たけるのプログラミング

作ったものとか、気ままにアップします。

PHPでtweetしてみた!!!

こんにちは、夏休みをstay homeで堪能しているたけるです。


突然PHPtweetしたくなったので、実際にtweetしてみました。


twitter apiを使う方法がありますが、英語で申請したり結構めんどくさかった気がします。(※以前pythonapi使って遊んでました。)


なので今回はIFTTTというサービスを使いたいと思います。
ifttt.com


IFTTTについて知りたい方は、以前IFTTTについて書いた記事あるので、よかったらどうぞ!!!

takeru232423.hatenablog.com

実行結果

f:id:takeru232423:20210812142831p:plain



f:id:takeru232423:20210812123332p:plain

textareaに入力した文字をtweetできるという簡単なプログラム。

作り方

まずIFTTTでWebhooksとTwitterを使い、以下の構成のアプレットを作ってください!!!
f:id:takeru232423:20210812124650p:plain

上記画面のtwitterのedit部分を押しtweet内容を作ります。

f:id:takeru232423:20210812125319p:plain

PHPTweetしました!!!」は固定で、Value1の部分をtextareaで入力した文字が入るようにします。

ifttt.com

そして上記ページ画面の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

  • curl_init cURLセッションを初期化する
  • curl_setopt cURLオプションを設定

第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

を使い、データを指定した。

感想

IFTTTでGoogleのサービス、例えばドライブやスプレッドシートとも連携できるため、うまく利用できれば業務効率化に利用できるかもですね。

今回の記事について、ご指摘等ございましたらコメントよろしくお願いいたします。

参考記事
https://amg-solution.jp/blog/14245