1
$response = $facebook->api(
    'me/objects/namespace:result', 
    'POST', 
    array(
    'app_id' => app_id, 
    'type' => "namespace:result", 
    'url' => "http://samples.ogp.me/370740823026684", 
    'title' => "Sample Result", 
    'image' => "https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png", 
    'description' => "" 
) 
); 

我收到以下錯誤消息。如何使用php-sdk更新對象? (需要參數對象)

The parameter object is required 

我不知道在哪裏添加參數對象。

+0

什麼是我/對象應該是?自定義操作通過發佈到'/ {user-id}/{namespace}:{action-type-name}'創建。你叫什麼樣的對象類型?您還必須使用'type'參數,請參閱https://developers.facebook.com/docs/opengraph/using-actions/ – CBroe

+0

對象名稱是結果。我想用php更新對象。我不發佈行動。我聽說數組必須是json編碼的。但我不知道在哪裏指定對象參數。 – Mahesh

+1

@CBroe我找到了。 http://facebook.stackoverflow.com/questions/17153617/facebook-javascript-sdk-open-graph-error-adding-custom-objects-for-custom-stori - >我仍然不知道如何使用在php中的對象參數。 – Mahesh

回答

0

過去幾天我一直面臨同樣的問題,最後我停止嘗試使用Facebook PHP SDK來發送請求並使用發送HTTP請求。

我正在創建一個對象而不是更新一個對象,但實現應該與您的需求無太大區別。我得到了同樣的錯誤(需要參數對象),下面的實現解決了這個問題。

我用vinelab HTTP客戶端作曲家封裝並內置這樣的請求:

$request = [ 
     'url' => 'https://graph.facebook.com/me/objects/namespace:object', 
     'params' => [ 
      'access_token' => $fbAccessToken, 
      'method' => 'POST', 
      'object' => json_encode([ 
       'fb:app_id'   => 1234567890, 
       'og:url'   => 'http://samples.ogp.me/1234567890', 
       'og:title'   => 'Sample Object', 
       'og:image'   => 'https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png', 
       'og:description' => 'Sample Object' 
      ]) 
     ] 
    ]; 

// I'm using Laravel so this bit might look different for you (check the vine lab docs if you use that specific HTTP client) 
$response = HttpClient::post($request); 

// raw content 
$response->content(); 

// json 
$response->json(); 

正如我所說的,我用了vinelab HTTP包在我的實現,你應該能夠使用任何類似的包或而是直接在PHP中使用curl。