2012-02-04 10 views
0

Facebook APIは新しく、現時点ではFacebook PHP SDKを使用しています。だから、私の壁(/ me/links /)にあるFacebook(http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1など)から自動的に特定の写真を共有することに興味がありました。 したがって、POSTリクエストでは、パラメータ "source"と "link"を送信し、両方とも同じURL(画像URL)を参照します。しかし、私はOAuthExceptionを取得します。 "(#1500)あなたが指定したURLは無効です"。Facebook APIを使用して画像を共有することはできません

「publish_stream」と「share_item」の両方のアクセス許可が許可されていますが、私のコードに問題はないようですが、アプリの設定は何とかしているようですGraph API Explorerを使用して、同じアクセス権を持つアクセストークンを生成する場合

私はここで何が欠けていますか?

グラフAPI APIエクスプローラがうまくいきました。別のトークンが生成されましたが、うまくいきました。だから、問題は、コードある可能性があり、そうここにそれは行く:

$share = $facebook->api('/me/links', 'POST', array(
          'source' => urlencode($temp_test), 
          'link' => urlencode($temp_test), 
          )); 

はそれに何か問題はありますか?

答えて

1

Facebookでホストされている画像は共有できません。 PHP copy()関数を使用してサーバー上でそのイメージを最初にコピーし、サーバーからイメージのURLを渡すことができます。

i.e copy("http://www.facebook.com/photo.php?fbid=10150286544861729&set=a.10150286544851729.375565.20531316728&type=1", "/folder location on your server/image.jpg"); 

$share = $facebook->api('/me/links', 'POST', array(
          'source' => "http://yourserver.com".$folder_path.$image, 
          'link' => urlencode($temp_test), 
          )); 
+0

「ソース」を削除して「リンク」を使用するとどうなりますか?それでも私のサーバーにイメージをコピーする必要はありますか? –

+0

これはちょっとしたものですが、グラフAPIエクスプローラでイメージを共有することができます(グラフのパラメータリンクをFacebookの画像に渡すことはできますがアプリではできません)。 –

+0

イメージについてのリンクがありますが、ユーザーがそのイメージにプライバシーを設定すると、あなたのアプリでそのイメージを投稿できるようにするにはどうすればいいですか? –

1

すでにFacebook上で自分のアルバム内の画像を持っているし、あなたのタイムラインや友人の上の画像を共有したい場合は、あなたがobject_attachmentタグを使用することができます。これは、あなたがobj-Cでそれを行う方法です。

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            //         @"http://www.bitsonthego.com", @"link", 
            {image id of your image goes here}, @"object_attachment", 
            @"my profile", @"name", 
            @"description", @"description", 
            @"name of the post", @"name", 
            @"caption of my post", @"caption", 
            @"a message", @"message", 
            nil]; 

    [facebook requestWithGraphPath:@"/me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

あなたのイメージの別のコピーを作成するか、ローカルでホストする必要はありません。

関連する問題