2011-08-25 99 views
1

有時我得到空數組作爲API調用/我/ apperquests後發送請求通過request dialog 我使用來自Facebook的PHP SDK的PHP庫,所以身份驗證是可以的(例如/我打電話是好)。與Facebook apprequests問題

有人能幫助我,爲什麼會發生這種情況?萬分感謝!

+0

盲目猜測:FB REST API本身當前返回空響應或者Facebook PHP SDK中的cURL失敗。 – toopay

回答

7

調用/me/apprequests搜索將返回從應用程序和朋友您發送別人的請求發送到您的要求!

apprequests - 用戶未完成的應用程序請求。


我已經提出了一個解決方案來跟蹤用戶發送的請求,它的深度here描述。

簡而言之,您將處理包含請求標識的apprequests回調的響應,並將它們與用戶(發件人)標識一起存儲在數據庫中。

代碼:

<?php 
// PATH TO THE FB-PHP-SDK 
require_once '../src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => 'APP_ID', 
    'secret' => 'APP_SECRET' 
)); 

$user = $facebook->getUser(); 
$loginUrl = $facebook->getLoginUrl(); 

if (empty($user)) { 
    echo("<script> top.location.href='" . $loginUrl . "'</script>"); 
    exit(); 
} 
?> 
<!doctype html> 
<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
</head> 
<body> 
<a href="#">Send Application Request</a> 

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId : 'APP_ID', 
      status : true, 
      cookie : true, 
      xfbml : true, 
      oauth : true 
     }); 
    }; 

    $('a').click(sendRequest); 
    function sendRequest() { 
     FB.ui({ 
      method: 'apprequests', 
      message: 'Check out this application!', 
      title: 'Send your friends an application request', 
     }, 
     function (response) { 
      if (response && response.request_ids) { 
       var requests = response.request_ids.join(','); 
       $.post('handle_requests.php',{uid: <?php echo $user; ?>, request_ids: requests},function(resp) { 
        // do something 
       }); 
      } else { 
       alert('canceled'); 
      } 
     }); 
     return false; 
    } 

    (function() { 
    var e = document.createElement('script'); 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 
</body> 
</html> 

顯然不是真正需要的PHP-SDK。

+0

不客氣,我已經延長了我的回答,幷包含一篇關於如何發送和跟蹤用戶請求(發送)的完整文章的鏈接 – ifaour

+0

謝謝你的例子和鏈接!我在我的應用程序中做了類似的工作 – fabian

+0

附加信息:使用** GET **調用'/ me/apprequests'將返回結果。 – Raptor