⇒《人気ブログランキング》
こんにちは、ドリル 鈴木です。
何とか自動投稿プラグインが復旧しました。
最初は「こりゃ完全にアメバにはぶられたかな?」と思っていたのですが、11月末に徐々に解決記事がアップされる様になりました。
今回の解決方法等、簡単に紹介したいと思います。
それでは、スタートです。
今回の流れ
11月26日に投稿した記事「アメブロ自動連携プラグインが使えなくなっています」に書いた時点で始めて私はプラグインが接続できなくなっている事に気づきました。
この時は、エラーの内容が「403 forbidden」となっていた事から、2つの可能性があると思っていました。
一つがアメブロから完全に遮断されてしまった可能性。
もう一つが、仕様変更で認証方式が変わった可能性です。
しかし、どちらにせよこの時点で解決方法はまるでわかりませんでした。
認証方式についても色々組み合わせを試してみたのですが、どれも通る事はありませんでした。
そして、家宝は寝て待てとばかりに他力本願に少し待ってみる事にしました。
すると今月上旬あたりから徐々に解決方法がブログに掲載される様になってきました。
ただ、完全な解決方法を書いているブログは見当たりませんでした。
その時に特に解決の糸口になったのが同じ「すずきさん」の「MiZlog」です。
この「HTTP_Request」だと繋がると言う追記です。
早速「HTTP_Request」を使ってみる
以前のプログラムでは「cURL」という機能を利用してアメブロに接続を行っていました。
そこを全て「HTTP_Request」を使う様に変更しました。
すると驚くぐらい簡単に繋がってしまいました。
修正内容は難しくなく「cURL」で接続していた箇所
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, AMEBA_API_URL);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER,array($amebloHeader));
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close($ch);
を「HTTP_Request」で書き換え、レスポンス関連も修正しました
$res = new HTTP_Request(AMEBA_API_URL);
$res -> addHeader( 'X-WSSE', $wsse );
$res -> addHeader( 'Content-Type', 'application/x.atom+xml' );
$res -> sendRequest();
これによって設定画面や投稿画面のプログラムが変更になっています。
とはいっても、見ての通り逆にシンプルになったので、管理しやすく結果オーライかも知れません。
更に言うと、それ以外の認証部分は大きな変更はしていません。
ただ、リクエストやレスポンスが一部以前と違っていたので変更していますが、運用上は影響ないと思います。
ダウンロードは下記のページからどうぞ
》WordPressからアメブロに自動投稿するプラグインダウンロード
ごめんなさい
今回の修正は、接続エラーのみのとなってしまいました。
先日の記事で書いた様な「新しい機能」は一切ついていません。。。
年末にの時間を使って開発していきたいなと思っているので、新しい機能はもう少々お待ち下さい。
ほんとスミマセン。
あと、一通りテストしていますが、テスト漏れがあるかも知れません。
もしバグなど見つけたら教えてもらえると助かります。
まとめ
その他にも色々なブログを参考させて頂きました。
完全に自分一人の力では解決できませんでした。ありがとうございました。
また、多くの方がブログで書かれているのですが、今回の様にある日突然使えなくなってしまう可能性は多々あります。
アメブロへ接続する機能はアメバ公認ではないので、制作者側ではどうする事も出来ません。
それもあって修正内容を公開していない方も多い様ですし、私も理解できます。
なので、あまりこの機能に依存した仕組みを作ってしまうのも危険かも知れません。
そこも踏まえた上でご利用頂けると助かります。
よろしくお願いします。
以上、鈴木でした。
たまにクリックで応援して頂けると、励みになります。
⇒《人気ブログランキング》
初めまして。すみません。こちらへコメントしても反映されません。
スパム判定で蹴られてるのかとも思ったり・・・
> yamashitaさん
コメントありがとうございます。
コメントは全て承認制にしているので、すぐには反映されません。
スパムでない事を確認してから、公開しています。
けられている訳ではないので、ご安心下さい。
どうぞ、宜しくお願い致します。
はじめまして、アメブロのAtomAPIが変更になって
調査していた結果、ここにたどり着きました。
プラグインのインストールを行って、
「Ameblo Auto Post Setting」にアメブロアカウント情報を
入力し、設定を保存した後に、画面下部に「アメブロ1はアメーバとの連携が確立しました。」と表示が出ましたが、
投稿の編集より、自動投稿のチェックを付けて更新ボタンを押しても、アメブロの方に投稿されません。
PearのインストールとHTTP_Requestのインストールも行っています。
私の操作が間違っているのでしょうか。
解法をご教授頂けないでしょうか。
> じゅんさん
コメントありがとうございます。
連携が確立したにも関わらず、投稿がされないと言う事で間違いないでしょうか。
通常でしたら、それで自動投稿されるはずです。
動作している時点でPearの問題もないかと思います。
じゅんさんはサムネイル画像は設定されているでしょうか?
もしされているなら、画像がアップロードされているかご確認下さい。
投稿だけエラーになっている可能性があります。
投稿だけのエラーの可能性としては「文字数」と「特殊なタグや記号」が考えられます。
また、プラグインの仕組み上、実行中のエラーメッセージが画面に表示されていないのですが、サーバのエラーログが残っている可能性があります。
可能であればそちらも一度ご確認下さい。
以上をご確認頂き、再度ご連絡頂けると幸いです。
どうぞ、宜しくお願い致します。
ありがとうございます。
何とか解決しました。
何度もありがとうございました。
> ひろさん
コメントありがとうございます。
解決できた様で一安心致しました。
今後ともどうぞ、よろしくお願い致します。
こんにちは。
なおったんですね。ありがとうございます。ただ、うちのサイトはエラーがでてしまいました。。
わかりますでしょうか?お手数かと思いますが、よろしくお願いします。
手順は一度、削除してアップロードし、有効化しようとするとこうなります。エックスサーバーです。
重大なエラーを引き起こしたため、プラグインを有効化できませんでした。
Warning: require_once(HTTP/Request.php) [function.require-once]: failed to open stream:
No such file or directory in /home/サーバー名/アドレス.com/public_html/wp-content/plugins/ameblo-auto-post/index.php on line 17
Fatal error: require_once() [function.require]: Failed opening required ‘HTTP/Request.php’
(include_path=’.:/usr/share/php53/pear:/usr/share/php’) in /home/サーバー名/アドレス.com/public_html/wp-content/plugins/ameblo-auto-post/index.php on line 17
> ひろさん
コメントありがとうございます。
何とか復旧して、使える様になりました。
お待たせ致しました。
ただ、今回の修正により「http_Request」と言うPHPのライブラリを使用する様になりました。
エラーを見た感じだと、このライブラリが見つからずにエラーになっている様に思います。
ちなみに「Pear」と言うのがPHPのライブラリになります。
もし可能であれば、Pearのディレクトリ「include_path」に「http_Request」を追加して下さい。
ライブラリは無料でダウンロード可能です。
また、そのディレクトリにアップが出来ない場合は、アップロード可能なフォルダにアップし、htaccessでライブラリフォルダを追加する事もできます。
あとはサーバによってしまうので、サーバ会社に確認頂いた方が確実かも知れません。
それでも動かない様でした再度ご連絡頂けると助かります。
どうぞ、よろしくお願いします。
年末、お忙しいところありがとうございました。大変恐縮です。
なるほど。。プラグインをインストールする際に、
ライブラリを追加しなくてはいけなかったのですね。。
このあたりの知識がないのですが、、調べたところ、xserverにPEARがもともとインストールされているようなので、
https://www.xserver.ne.jp/manual/man_program_cgi.php
htaccessに下記のコードを追加したりするなどをチャレンジしたのですが、結果うまくいきませんでした。
php_value include_path “.:/home/ユーザー名/ドメイン名.com/pear/PEAR”
再度、プラグインをダウンロードしたのですが、プラグインのファイルは12/18バージョンままで大丈夫で、htaccessにpearのパスを追加すれば、動くという理解なのですが、よろしいですか?度々申し訳ございません。
PS すいません、間違えた位置に返信してしまったようです。片方消去いただけると幸いです。
> ひろさん
コメントありがとうございます。
リンク先を見た所、Xserverにはhttp_requestは最初からは入っていないんですね。
ライブラリをインストールして頂いて、htaccessも修正されたと言う事ですが、
うまく行かないとしたらhtaccessに問題があるかサーバの仕様の問題かも知れません。
もし可能であれば、プラグインのプログラムを直接書き換えてしまうのは如何でしょうか?
プラグインの中「ameblo-auto-post/index.php」の16行目にある
「require_once “HTTP/Request.php”;」
がライブラリを読込んでいる所なのですが、このパスをフルパスに書き換えてしまうのが早いかも知れません。
もしフルパスが間違えていればそのエラーメッセージが表示される所もわかりやすいと思います。
その他、不明な所があればご連絡下さい。
どうぞ、宜しくお願い致します。
ご親切にありがとうございました。
すいません、多忙でやっと試せました。ただ、うまくいっておりません。。
前回、ちょっと手順を勘違いしていました。
PEARをインストールし、さらにPEARの中にあるhttp_requestをインストールする必要があるのですね。前回はそこまでやっていませんでした。
現在、PEARを「ウェブに公開されていない箇所」と「Basic認証をかけたUrlでアクセスできる個所」の2か所においてあるのですが、いずれのパスに変えてもエラーが改善されません。ちなみに、PEARをインストールする際に、こちらのサイトなどを参考にしました。
http://d.hatena.ne.jp/revolutionary/20090309/p1
ameblo-auto-post/index.phpのパスも書き換えましたが、次のエラーがでています。現在でているエラーです。
エラー名は
Fatal error: require_once() [function.require]: Failed opening required
あと、警告が
Warning: require_once(.:/home/ユーザー名/ドメイン名/public_html/lib/pear/PEAR/)
[function.require-once]: failed to open stream: No such file or directory in
ちなみに、初歩的な確認かもしれませんが、アメブロのパスを書き換えたら、htaccessの記述は削っても差し支えないですか?
整理すると、PEARはインストールできている。ここまでは問題ないと思います。
http_requestはインストールしたつもりだけど、本当にうまくいっているかやや疑問?(パスを書き換えてもうまくいかないので、こちらを疑ったり…)
ただ、[ list installed packages ]には
pear.php.net HTTP_Request 1.4.4 (stable) Provides an easy way to perform HTTP requests
となっている。コマンドでhttp_requestをインストールしている解説が多かったのですが、私はコマンドを使ったことがないので、管理画面からインストールしました。
list installed packages → Quick-install a package
HTTP_Requestと入力しinstallボタンを押しました。
PEARのパーミッションの設定は特に変えていません。
フォルダ755 ファイル644
何かわかりますでしょうか?手順的には大丈夫でしょうか。お手数かと思いますが、アドバイスいただけると大変助かりますmm。
> ひろさん
コメントありがとうございます。
エラーのない様ですが、読込もうとしたファイル(PEAR)がなくてエラーになっている様です。
今一度URLをご確認頂くか、アップしたフォルダが読込めない可能性があります。
今一度指定したディレクトリにHTTPのアドレスやパーミッションを確認してみて下さい。
また、直接ダウンロードしたhttp_requestを特定のフォルダにアップして、そこのURLでPHPを書き換えて頂ければ大丈夫なはずです。
一度その方法でも試してみて下さい。
ちなみに、プログラムを書き換えれば.htaccessは必要ありません。
よろしくお願いします。