Why Attachment Doesn't Appear on Wall While Message appears when publish on Facebook Wall using stream.publish
When using stream.publish method some facebook application developers face a common problem which is that the message is appearing on the wall while the attachment argument which is used to post media stuff like images and videos does not appear.
The main problem behind this is the format of the attachment array, you should make sure that you wrote the array in the correct way, some tips are below:
If you are using .Net or Coldfusion or another programming language the format of the array and array of array is not the same so you have in some languages to replace the single quotation( ' ) with double ( " ).
The array is presented in some language with brace ({}) and array of array is ([{}])
So for the below example in php:
$attachment = array( 'properties' => array('Votes' => array( 'text' => 'Members Voted', 'href' => 'http://blog.abusalah.info/'), 'ratings' => '5 stars'), 'media' => array(array('type' => 'image', 'src' => 'http://www.abusalah.info/fbapps/fbapp3/imgs/Egypt.jpg', 'href' => 'http://www.abusalah.info/fbapps/fbapp3/imgs/Egypt.jpg'));
the equivalent code in coldfusion is:
<cfset attachment = '{"properties":{"Votes":{"text":"Members Voted","href":"http://blog.abusalah.info/","rating":"rate"}},"media": [{"type":"image","src":"http://www.abusalah.info/fbapps/fbapp3/imgs/Egypt.jpg","href":"http://apps.facebook.com/algeria-egypt/"}]}'>
Please note that the attachment must be in JSON format.
If you have any question please add a comment.
The main problem behind this is the format of the attachment array, you should make sure that you wrote the array in the correct way, some tips are below:
If you are using .Net or Coldfusion or another programming language the format of the array and array of array is not the same so you have in some languages to replace the single quotation( ' ) with double ( " ).
The array is presented in some language with brace ({}) and array of array is ([{}])
So for the below example in php:
$attachment = array( 'properties' => array('Votes' => array( 'text' => 'Members Voted', 'href' => 'http://blog.abusalah.info/'), 'ratings' => '5 stars'), 'media' => array(array('type' => 'image', 'src' => 'http://www.abusalah.info/fbapps/fbapp3/imgs/Egypt.jpg', 'href' => 'http://www.abusalah.info/fbapps/fbapp3/imgs/Egypt.jpg'));
the equivalent code in coldfusion is:
<cfset attachment = '{"properties":{"Votes":{"text":"Members Voted","href":"http://blog.abusalah.info/","rating":"rate"}},"media": [{"type":"image","src":"http://www.abusalah.info/fbapps/fbapp3/imgs/Egypt.jpg","href":"http://apps.facebook.com/algeria-egypt/"}]}'>
Please note that the attachment must be in JSON format.
If you have any question please add a comment.
Hey abusalah...Thanks for writing this! It was really helpful. Just wanted to let you know as i am trying to build some coldfusion facebook apps. Hope you write more FB coldfusion apps!
ReplyDeleteHope you write more articles about Facebook-CF!
ReplyDeleteI will write a full tutorial, I hope I will be able to finish it by this weekend.
ReplyDelete