Как обновить объект с помощью php-sdk? (Объект параметра обязателен)

$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' => ""
  )
);

Я получаю следующую ошибку.

The parameter object is required

Я не знаю, куда добавить объект параметра.


person Mahesh    schedule 26.06.2013    source источник
comment
Каким должен быть me/objects? Пользовательские действия создаются путем публикации в /{user-id}/{namespace}:{action-type-name}. И как называется ваш тип объекта? Вы также должны использовать параметр type, см. developers.facebook.com/docs/ opengraph/использование действий   -  person CBroe    schedule 26.06.2013
comment
имя объекта является результатом. Я хочу обновить объект с помощью php. я не публикую действие. Я слышал, что массив должен быть закодирован в json. Но я не знаю, где указать параметр объекта.   -  person Mahesh    schedule 26.06.2013
comment
@CBroe Я нашел это. facebook.stackoverflow.com/questions/17153617/ --› Я до сих пор не знаю, как использовать параметр объекта в php.   -  person Mahesh    schedule 26.06.2013
comment
Вы можете увидеть в ответе, как это используется...   -  person CBroe    schedule 26.06.2013
comment
но как мне это сделать в php? объект: json_encode($array).. как мне использовать этот объект в php?   -  person Mahesh    schedule 26.06.2013
comment
я пробовал это .. $object = объект: .json_encode($params_graph); где params_graph — это массив. $facebook-›api(/me/objects/namespace:result,POST,$object); выдает ту же ошибку   -  person Mahesh    schedule 26.06.2013


Ответы (1)


Последние пару дней я сталкивался с той же проблемой, в конце концов я перестал пытаться использовать Facebook PHP SDK для отправки запроса и прибегнул к отправке HTTP-запроса.

Я создаю объект, а не обновляю его, но реализация не должна сильно отличаться от ваших потребностей. Я получал ту же ошибку (требуется объект параметра), и приведенная ниже реализация разрешила эту проблему.

Я использовал пакет компоновщика HTTP-клиента vinelab и создал такой запрос:

$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();

Как я уже сказал, я использовал HTTP-пакет vinelab в своей реализации, вы должны иметь возможность использовать любой аналогичный пакет или вместо этого напрямую использовать curl в PHP.

person iamthewit    schedule 18.11.2014