5

Trong tất cả các nghiên cứu tôi đã thực hiện về chủ đề này, 90% nó đã lỗi thời, điều này khiến tôi tin rằng đã có những thay đổi gần đây Facebook JS SDK liên quan đến việc chia sẻ một cách rõ ràng các câu chuyện về Open Graph. Tôi có mã sau:Tự động tạo mô tả cho câu chuyện biểu đồ mở được chia sẻ rõ ràng qua Hộp thoại Chia sẻ FB.ui

function postToFB(desc){ 
FB.ui({ 
    method: 'share_open_graph', 
    action_type: 'mynamespace:myaction', 
    action_properties: JSON.stringify({ 
     myobject: "myobjectid" 
    }) 
}, function(response){}); 
} 

Vấn đề với điều này là nó sẽ cố gắng chia sẻ myobject chỉ với cài đặt mà tôi đã thiết lập trong phần Biểu đồ mở Facebook của cài đặt ứng dụng của tôi. Tôi muốn sử dụng cùng một đối tượng, nhưng thay đổi mô tả bằng biến 'desc' động mỗi khi được chia sẻ. Có ai biết làm thế nào để thực hiện điều này? Tôi có thể tĩnh thiết lập các chú thích trong phần mở rộng Facebook của tôi đồ thị của các thiết lập ứng dụng của tôi, nhưng tôi cần phải tự động thiết lập nó mỗi khi tôi chia sẻ nó thay thế.

Tôi đã tìm kiếm thông qua Facebook JS SDK cho các cặp khóa/giá trị bổ sung có thể được thêm vào action_properties, nhưng thông tin SDK rất hạn chế về vấn đề này.

CẬP NHẬT

Tôi đã sửa đổi mã để bao gồm 2 cuộc gọi, một để tạo ra các đối tượng và lần thứ hai công bố những câu chuyện với thông tin đối tượng mới. Dưới đây là các mã:

function postToFB(desc){ 
FB.api(
    'me/objects/mynamespace:myobject', 
    'post', 
    { 
    object: { 
     "app_id": myappid, 
     "type": "mynamespace:myobject", 
     "url": "myurl", 
     "title": "mytitle", 
     "image": "myimgurl", 
     "description": desc 
     } 
    }, 
    function(response) { 
     console.log(response); 
     FB.ui({ 
      method: 'share_open_graph', 
      action_type: 'mynamespace:myaction', 
      action_properties: JSON.stringify({ 
       myobject: response.id 
     }) 
    }, function(r){}); 
}); 
} 

Tuy nhiên, theo các ý kiến ​​về câu hỏi này: Facebook object API - duplicate objects created một nhân viên Facebook cho biết phương pháp này sẽ không được sự chấp thuận của Facebook bởi vì một hành động của người dùng không thể sản xuất hai bài viết, mà mã này ngay bây giờ làm. Một người sẽ đăng đối tượng vào nhật ký hoạt động của người dùng Facebook và một người sẽ đăng nó vào nhật ký hoạt động và nguồn cấp tin tức.

Sẽ rất tuyệt nếu tôi chỉ có thể thực hiện một cuộc gọi và quy định mô tả myobject phải là gì từ chính chức năng FB.ui. Có ai biết cách để làm điều này không?

Trả lời

5

Tôi đã tìm ra. Vấn đề chính mà tôi gặp phải là tôi đã đăng bài cho tôi/các đối tượng (đăng một sự kiện lên nhật ký hoạt động của người dùng) khi tôi đăng tải lên ứng dụng/đối tượng (sẽ tạo đối tượng nhưng không đăng sự kiện). Kể từ khi gửi bài đến ứng dụng/bất cứ điều gì yêu cầu một thẻ truy cập, tôi đã phải thay đổi các cuộc gọi ban đầu xảy ra ở phía máy chủ trong PHP:

$request = new FacebookRequest( 
null, 
'POST', 
'/app/objects/mynamespace:myobject', 
array(
     'access_token' => 'myaccesstoken', 
    'object' => json_encode(array(
     'app_id' => myappid, 
      'url' => 'myurl', 
      'title' => 'mytitle', 
      'image' => 'myimg', 
      'description' => 'mydesc' 
     )) 
) 
); 
$response = $request->execute(); 
$obj = $response->getGraphObject(); 
echo $obj->getProperty('id'); 

Từ đó tôi có thể sử dụng kịch bản JS để gửi các đối tượng với các ID mới vào nguồn cấp dữ liệu của người dùng.

Hy vọng rằng bạn sẽ không dành 2 ngày rưỡi để tự mình tìm ra nó như tôi đã làm.

Các vấn đề liên quan