Home » Php » How to post message with message_tags field using Graph API in PHP

How to post message with message_tags field using Graph API in PHP

Posted by: admin July 12, 2020 Leave a comment

Questions:

I want to post message with message_tags using Graph API.

I confirmed message only post in PHP, but don’t work with message_tags..

This is sample code.

---------
<?php
require_once('facebook.php');

$facebook = new Facebook(array(
  'appId'  => '127916833975***', // masked
  'secret' => 'a3271136ad68587d8e83171148f93***' // masked
));

$request_params = array('message' => mb_convert_encoding('test posting message', 'UTF-8', 'EUC-JP'));

$tags = array(
          'id' => '100000834278***', // masked
          'name' => 'MY_FRIENDS_NAME', // masked
          'offset' => 0,
          'length' => 15 // friend name length
        );

$request_params['message_tags'] = $tags;
$facebook->api('/feed', 'POST', $request_params);
?>
---------

In document message_tags field,

---------
object containing fields whose names are the indexes to where objects are 
mentioned in the message field; each field in turn is an array containing 
an object with id, name, offset, and length fields, where length is the 
length, within the message field, of the object mentioned
---------

https://developers.facebook.com/docs/reference/api/post/

Allowed scopes are read_stream and publish_stream.

How to&Answers:

Apparently the message_tags can only be read via the API. Writing message_tags is not supported. See this bug report and facebook response from 11/22/2011.

Answer:

add this line of code to auto-post your message to wall

if ($user) {
    $attachment =  array(
        //'access_token' => $access_token,
        'message' => "Amazing stuff by I just took part in their  by dragging and dropping items I would like to win, and who knows, I could get lucky!",
        'name' => "",
        'link' => "http://www.facebook.com/abc?sk=app_111111111111",
        'description' => "Pick your  and you could actually win all the items that you pick!",
        'picture'=> "http://www.abc.in/img/dp.png"
        );
    //var_dump($attachment);
    $facebook->api('/me/feed', 'POST', $attachment);
}