Instagramの写真をFacebook Open Graph APIでアップロードするとfbcdn.net urls are not allowedと言われて投稿できないときの解決方法
Facebook Open Graph APIでリンク付きの投稿をInstagramの写真ですると、下記のようにエラーを吐きました。
(#1500) fbcdn.net urls are not allowed.
おそらくFacebookがInstagram購入後にInstagramの写真をFacebook cdnにのせるようになって、これがFacebookのポリシーと反するのでしょう。
どうしようかと迷ったあげく、nginxでプロキシさせて対応させました。
proxy_passでホスト名を変えるのは難しそうだったので、rewriteを使いました。
# nginx config server { listen 80; server_name dev.myhost.com; location /instagram/ { rewrite ^/instagram/(.*)/(.*) http://$1.fbcdn.net/$2 break; } }
でアプリ側でURLの変換を行ってアクセスをラップ。
if ($row->cover_image =~ /http:\/\/(\S+).fbcdn.net\/(\S+)/ ){ $image_url = "http://dev.myhost.com/instagram/$1/$2"; }
一応投稿されます。スマートな解決方法でないのは承知ですが、とりあえず、ね。