便利な「Wp Facebook Portal」とエックスフリーで画像が取得できず悪戦苦闘
Facebookの投稿を自動的にWordPressのブログに投稿したい
今日は建設・宅建のご依頼で外出することもなく、自宅で書類作成に明け暮れていましたが、とある方から、Facebookで投稿した内容を、自動的にWordPressのブログに投稿したいという相談を受けました。
プラグイン「Wp Facebook Portal」を利用する
「普通は逆でしょ?」と思うのですが、Facebookの方が投稿しやすいという人もいるようで、WordPressのプラグインにありました。
「Wp Facebook Portal」という日本人の方が制作のプラグイン。
ただし、最終開発から2年経過しているようで。
最新のバージョンで使えるのが不安でした。
結論から言うと、すんなりできました。
やり方は検索すると出てきます。
画像を引っ張ってきてくれない問題発生
問題点が。
本来ならば画像も投稿されるはずが、画像は引っ張ってきてくれていない。
なぜなのか?
少し沼にハマった気分でしたが、なんとか解決。
なぜできなかったかという理由が、無料ホームページサーバー(Xdomain[現・エックスフリー])が、外部のFacebookから画像を取得する“file_get_contents()”で、PHP.iniの設定で”allow_url_fopen=on”にできないから。
PHP.iniの設定自体は多少できるのですが、“allow_url_fopen=on”にできないのです。
※これができればすんなり行ったのですが…
なので、“file_get_contents()”の部分をcURLで書き換えないといけないのです。
※ここらへん定義とか説明メチャクチャかもしれません。
いろいろ検索して、以下の方法で取得できました。
解決方法
あ、この方法が間違ってたり、この編集で何かあっても責任取れませんので、念のため。
質問も受け付けません。
wp-facebook-portal→core→class-common.phpファイルの中の
$img_data = file_get_contents($photo_url);
の1行を丸々以下のようにコピペで置き換えます。
$img_data = “”;
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_URL, $photo_url);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$img_data = curl_exec($ch);
curl_close($ch);
これで、画像が取得できるようになると思います。
ただ、私もPHPにそんなに明るくないので保証はしません。
WordPressはちょっとでも記述が変だとエラーになってしまうので、バックアップだけは取っておいてください。
検索してみると結構悩んでる方も多いようで、一応、私の解決法の紹介でした。
大倉事務所のホームページでも便利そうなので利用しようかと思いましたが、ブログを更新した方が早いので、様子見です。