在用户接受时删除每个通知

时间:2011-11-04 23:08:31

标签: facebook-graph-api notifications facebook-php-sdk

如何在用户接受通知时让应用删除通知?例如,用户向朋友发送请求,然后在给出接受或拒绝选项之前通知用户。接受后我需要在数据库中输入一些信息,这不是我遇到的问题。

我正在使用下面的代码,我发现的问题是当用户有来自不同人的多个请求时。它要么删除所有请求,要么根本不删除,理想情况下我需要删除用户已接受的每个请求。有什么想法吗?

$request = $facebook->api("/me/apprequests");

foreach ($request as $data) {       
    echo "<form method='post'>";   
        foreach ($data as $full_request_id) {
            echo "<input type='submit' name='yes' id='yes' value='Yes'>";
                if ((isset($_POST['yes']))) {
                    try {
                        $delete_success = $facebook->api("/$full_request_id",'DELETE');
                        if ($delete_success) {
                            echo "Successfully deleted " . $full_request_id;}
                        else {
                           echo "Delete failed".$full_request_id;}
                        }          
                        catch (FacebookApiException $e) {
                echo $e;}
                }
                echo "</form>";
        }           
}

1 个答案:

答案 0 :(得分:0)

“请求”对话框的页面上有示例代码:https://developers.facebook.com/docs/reference/dialogs/requests/

我认为推荐的工作流程是删除该用户的所有待处理请求(来自Facebook方面);如果您仍然需要用户在点击第一个后逐个手动接受它们,您可以为剩余的请求呈现您自己的界面

这就像Cityville这样的应用程序 - 当你点击Facebook请求他们清除你所有的Facebook请求并呈现他们自己的对话框,让你接受剩余的(现在隐藏在Facebook的onterface)礼物。