ฉันจะอัปเดตวัตถุโดยใช้ 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

ฉันไม่รู้ว่าจะเพิ่มวัตถุพารามิเตอร์ได้ที่ไหน


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 ได้อย่างไร? object: json_encode($array).. ฉันจะใช้วัตถุนั้นใน php ได้อย่างไร   -  person Mahesh    schedule 26.06.2013
comment
ฉันลองสิ่งนี้แล้ว .. $object = 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();

อย่างที่บอกไปแล้วว่าฉันใช้แพ็คเกจ vinelab HTTP ในการนำไปใช้งาน คุณควรจะสามารถใช้แพ็คเกจที่คล้ายกันหรือใช้ curl ใน PHP แทนได้โดยตรง

person iamthewit    schedule 18.11.2014