[英]Retrieve top 10 friends of user on Facebook (get their UIDs) PHP, Facebook API
如何獲取用戶的前10個朋友的uid ,並用指定的字符串包裝每個uid?
來自: 獲取Facebook應用程序的頂級朋友列表 ,我看到了:
$statuses = $facebook->api('/me/statuses');
foreach($statuses['data'] as $status){
// processing likes array for calculating fanbase.
foreach($status['likes']['data'] as $likesData){
$frid = $likesData['id'];
$frname = $likesData['name'];
$friendArray[$frid] = $frname;
}
foreach($status['comments']['data'] as $comArray){
// processing comments array for calculating fanbase
$frid = $comArray['from']['id'];
$frname = $comArray['from']['name'];
}
但是那又返回什么呢? 它是否以數組形式返回朋友的用戶ID? 我想將其存儲在搜索結果的數組中,因此我可以使用foreach封裝每個ID並對其進行滿意的處理。
如果上面的代碼足夠,我是否應該為頂級朋友數組調用$frid
? 我只需要理解。 :o)
感謝您的時間。
假定已授予權限。
(這僅在用戶允許許可后發生,所以假設我們已經擁有了。)
通過轉到https://github.com/facebook/facebook-php-sdk/zipball/master確保您擁有最新的SDK
解壓縮后,布局如下圖所示
/facebook-php-sdk
index.php
其中index.php與用於在瀏覽器中顯示文件的朋友數
在PHP文件的開頭包含SDK
require('sdk/src/facebook.php');
轉到https://developers.facebook.com/apps ,選擇您的應用程序並獲取您的應用程序ID和應用程序密鑰,在PHP文件中創建一個實例
$facebook = new Facebook(array(
'appId' => 'YOUR_APP_ID_HERE',
'secret' => 'YOUR_SECRET_HERE',
));
然后檢索$user
數據,以便我們知道當前用戶已通過身份驗證
$user = $facebook->getUser();
在發送任何呼叫之前,請檢查驗證是否正確
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
現在致電/me/statuses
該文檔位於https://developers.facebook.com/docs/reference/api/user/#statuses
$statuses = $facebook->api('/me/statuses');
這應該返回在所有當前用戶狀態消息的http://developers.facebook.com/docs/reference/api/status/上定義的狀態消息結構的數組。
現在您需要決定什么決定頂級朋友
讓我們選擇選項1,並將每個權重賦予1。也就是說,點贊和評論在確定朋友數量方面的價值是相等的
因此,創建一個變量來保存它,例如$ friendArray
然后對所有狀態消息進行迭代,但是整個JSON響應以包裝的data
開始
{
"data": [
因此,訪問$statuses['data']
,foreach將所有狀態消息作為status
項給出
foreach($statuses['data'] as $status){
在此循環中,重復所有喜歡的操作並增加出現的每個id的值
foreach($status['likes']['data'] as $likesData){
$frid = $likesData['id'];
$friendArray[$frid] = $friendArray[$frid] + 1;
}
在此循環中,迭代所有注釋並增加出現的每個id的值
foreach($status['comments']['data'] as $comArray){
$frid = $comArray['from']['id'];
$friendArray[$frid] = $friendArray[$frid] + 1;
}
在foreach($statuses['data'] as $status){
的外循環結束時,您應該有一個數組$friendArray
,該數組具有分數。
調用asort
http://www.php.net/manual/zh/function.asort.php對數組進行排序,然后可以循環搜索最高的x分數。
您顯示的代碼不是函數,實際上缺少右花括號,因為它不是函數,所以實際上不返回任何內容。
注意事項 : /me/statuses
每次調用僅返回有限的一組狀態消息,您需要獲得previous
頁面調用以迭代所有消息。 返回的頂級朋友僅基於我在上面所做的限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.