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

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

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

PHP、Twitterへの自動投稿機能を作成。」の記事で書いた通り
わわわIT用語辞典の内容をTwitterへ自動投稿するようにしていたのですが、
本日、APIから

<?xml version="1.0" encoding="UTF-8"?><errors> <error code="68">The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.</error></errors>

というエラーメッセージが返ってきました。

えっと……

もうAPI v1.0は止めちゃったからv1.1使ってね

って理解でOKかな(--?
まったく情報集めていなかったのですが、Twitter APIのバージョンが上がったのね。

ほんで、何が変わったの?

英語の説明を頑張って読んだところ、ちょこちょこ変わっているようです。
ただ、自動投稿のプログラムで意識する必要がありそうな部分は

1.呼び出すURLが変わるよ。
2.XMLはもう使えないよ。JSON使ってね。

くらいですかね。

取りあえず変更して動かなかったら考えよう。

こんなんだったソースをφ(--)

<?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/statuses/update.xml";
    $method = "POST";

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

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

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

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

こんな風に変えたら、あっさり動きましたφ(--)

<?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/statuses/update.xml";
    $url = "http://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/xml");
    header("Content-Type: application/json");
    echo $res;
?>

主処理部分で変更したのは呼び出すAPIのURLだけです。
レスポンスも当然JSONで返ってくるのでContent-Typeも一応変えてありますけどね。

これで、ふっつーに動きました。

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

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

  関連記事