Debuginfo

思考とアウトプット

Instagramの写真をFacebook Open Graph APIでアップロードするとfbcdn.net urls are not allowedと言われて投稿できないときの解決方法

Facebook Open Graph APIでリンク付きの投稿をInstagramの写真ですると、下記のようにエラーを吐きました。

  (#1500) fbcdn.net urls are not allowed.

おそらくFacebookInstagram購入後に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";
    }

一応投稿されます。スマートな解決方法でないのは承知ですが、とりあえず、ね。