我正在使用
$access_token = $facebook->getAccessToken();
$facebook->setAccessToken($access_token);
$response = $facebook->api(
$post_id['id'],
'DELETE'
);
从Facebook页面删除帖子。我有post id存储在mysql数据库中并使用
$ad_id = osc_ad_id();
$conn = getConnection();
$get_id=$conn->osc_dbFetchResult("SELECT * FROM %st_post_id WHERE ad_id = '$ad_id'");
$post_id = $get_id['post_id'];
检索id。
当我在我的网站上测试并按下删除按钮时,它会出现
致命错误:未捕获的GraphMethodException:不支持的删除请求。
虽然如果我手动执行,并使$post = '5768877877667657_76576687667'
(假身份证),然后更改代码
$access_token = $facebook->getAccessToken();
$facebook->setAccessToken($access_token);
$response = $facebook->api(
$post_id,
'DELETE'
);
它起作用并删除帖子。
所以我的问题是从mysql中检索id并手动执行它之间的区别是什么($post_id = '576768687878_7676765857875'
。
我在mysql上的行设置是type:varchar,collation:utf8_general_ci,length:50。
我已经研究过解决方案的stackoverflow但找不到任何东西。
我还在另一个页面上检索了id,然后使用echo查看格式是否正确,并且它可以工作,我甚至复制了回显的id并使$post_id
等于它,并且它成功删除了交。
当我从数据库中检索id并使其等于变量时,请求才会失败。
答案 0 :(得分:0)
不推荐使用mysql函数,请改用mysqli函数。在你的代码中。
$post_id= msql_query("SELECT * FROM %st_post_id WHERE ad_id = '$ad_id'");
$ post_id将是一个结果集。如果要获取结果集的每一列。您需要使用mysql_fetch_array()或mysql_fetch_row()。所以请添加此代码以获取post_id并尝试运行您的脚本。
$post_sql= msql_query("SELECT * FROM %st_post_id WHERE ad_id = '$ad_id'");
$post_details = mysql_fetch_array($post_sql);
$post_id = $post_details['id'];
$access_token = $facebook->getAccessToken();
$facebook->setAccessToken($access_token);
$response = $facebook->api(
$post_id,
'DELETE'
);