プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、Twitterへの自動投稿APIがAPIの仕様変更?で動かなくなっていた。
■2015年9月5日追記
 本ページ記載のサンプルプログラムは内容が陳腐化しています。
 サンプルを動かしたい方は、新しく書き直した

 PHP、Twitterへの自動投稿機能を作成(2015年9月版)。

 の記事を併せてご覧ください。

結論から書くと、APIの呼び出しURLをhttpからhttpsへ変更したら動くようになりました。

お急ぎの方は

http://api.twitter.com/1.1/statuses/update.json



https://api.twitter.com/1.1/statuses/update.json

に変えてみてください。
それで動けばおめでとうございます。
動かなければここから先を読んでも何の実りもありませぬ。


それでは過程を書いていきますね。

PHP、Twitterへの自動投稿機能を作成。

の記事で書いた通り、わわわIT用語辞典の用語をTwitterへ自動投稿するようにしていたのです。

また、一時期、自動投稿用のプログラムが動かなくなったのですが

PHP、Twitterへの自動投稿APIをversion1.0→1.1へ変更。

の記事で書いた通り、あれやこれやしたら直りました。

その後は平和に暮らしていたのですが、昨日また動かなくなったのです。
より正確に言うと、動かなくなっていたのです。

うん、丸一日気づきませんでした(-∀-;ゞ

どう動かなくなっていたかと言うと、APIからのレスポンスが

1

しか返ってこない。これだけ。
当然Twitterへの投稿もされていない状態です。

こんちくしょう(-A-)

その後、四苦八苦……するかと思ったのですが、
Twitter API呼び出し用のURLをhttpからhttpsに変えたらあっさり直りました。

コードはこんな感じφ(--)

<?php

    //「twitteroauth.php」読み込み
    //「OAuth.php」は「twitteroauth.php」と同じ場所に配置します
    //サンプルでは両ファイルとも「./../inc/」配下においてありますよ
    require_once dirname(__FILE__) . '/../inc/twitteroauth.php';

    // 「Consumer key」値
    $ck = さっきメモった「Consumer key」の値;
    // 「Consumer secret」値
    $cs = さっきメモった「Consumer secret」の値;
    // 「Access Token」値
    $at = さっきメモった「Access Token」の値;
    // 「Access Token Secret」値
    $ats = さっきメモった「Access Token Secret」の値;

    //リクエストを投げる先(固定値)
//    $url = "http://api.twitter.com/1.1/statuses/update.json";
    $url = "https://api.twitter.com/1.1/statuses/update.json";

    $method = "POST";

    //投稿する文言
    $postMsg = "投稿メッセージだよー";

    // OAuthオブジェクト生成
    $toa = new TwitterOAuth($ck,$cs,$at,$ats);

    //投稿
    $res = $toa->OAuthRequest($url,$method,array("status"=>"$postMsg"));

    // レスポンス表示
    header("Content-Type: application/json");
    echo $res;
?>

もしかしたら他にもAPIの仕様が変わっているのかもしれませんが、
取りあえず動いたので良しとしています。

完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事