2012-02-04 75 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瀏覽器工作正常,我剛剛生成另一個令牌,它工作正常。所以,這個問題可能與代碼有關,所以這裏是:

$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

如果我刪除「源」並只使用「鏈接」,那麼怎麼辦?我仍然需要將圖像複製到我的服務器? – 2012-02-05 00:36:58

+0

我知道它變得有點持久,但爲什麼我可以在Graph API Explorer上共享一個圖像(通過paramater「鏈接」到facebook圖片),但我無法在我的應用程序中執行它? – 2012-02-05 00:38:33

+0

對此沒有一個很好的想法,但認爲如果你有一個圖像的鏈接,但用戶設置該圖像上的一些隱私如何fb允許您的應用程序發佈該圖像? – 2012-02-07 02:52:47

1

如果你已經在你的專輯在Facebook上的圖像,並希望在你的時間表或朋友分享圖片,那麼你可以使用object_attachment標籤。這是你如何做到這一點的對象 - 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]; 

沒有必要讓你的形象的另一個副本或本地主機它。

相關問題