在Facebook中使用变量for post id删除请求PHP

时间:2015-03-23 09:25:16

标签: php mysql facebook

我正在使用

$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,collat​​ion:utf8_general_ci,length:50。

我已经研究过解决方案的stackoverflow但找不到任何东西。

我还在另一个页面上检索了id,然后使用echo查看格式是否正确,并且它可以工作,我甚至复制了回显的id并使$post_id等于它,并且它成功删除了交。

当我从数据库中检索id并使其等于变量时,请求才会失败。

1 个答案:

答案 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'
            );