2014.
01.
16
06:46:50
■2015年9月5日追記
本ページ記載のサンプルプログラムは内容が陳腐化しています。
サンプルを動かしたい方は、新しく書き直した
PHP、Twitterへの自動投稿機能を作成(2015年9月版)。
の記事を併せてご覧ください。
本ページ記載のサンプルプログラムは内容が陳腐化しています。
サンプルを動かしたい方は、新しく書き直した
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;
?>
//「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の仕様が変わっているのかもしれませんが、
取りあえず動いたので良しとしています。
完了\(--)/