如何使用图形api编码/解码facebook评论回复?

时间:2016-08-21 01:36:44

标签: php facebook facebook-graph-api

这是我的代码:

    $message = urlencode($message);
    $params[] = "message=".$message;
    $params = implode('&',$params);

    $curl = curl_init($this->graph_api.$object_id.'/comments?access_token='.$access_token);
    curl_setopt($curl,CURLOPT_POST,true);
    curl_setopt($curl,CURLOPT_POSTFIELDS,$params);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);

    $response = curl_exec($curl);
    curl_close($curl);

目前解码存在问题我猜,例如在评论回复中有符号时:

评论:>>>联系

将输出:& GT;&安培; GT;&安培; GT;联系(& gt;之间没有空格)

同样适用于其他符号。我认为编码没有问题,仅用于解码。我不确定这个api图如何用于解码。真的很感激任何帮助。

还有一件事,对于private_replies,是否可以包含url?因为有时候facebook会阻止/过滤以避免发送垃圾邮件。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

基于这个答案解决了问题:https://stackoverflow.com/a/7796870/3613026

仅从数据库解码(例如:& gt;& gt;& gt;)并作为解码消息(将:>>>)发送到图形api。没有魔法。 :)

$message = html_entity_decode($message, ENT_COMPAT, "UTF-8");
$params[] = "message=".$message;
$params = implode('&',$params);

$curl = curl_init($this->graph_api.$object_id.'/comments?access_token='.$access_token);
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$params);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);

$response = curl_exec($curl);
curl_close($curl);