الحصول على قائمة بأصدقاء Facebook مع أحدث واجهة برمجة التطبيقات

StackOverflow https://stackoverflow.com/questions/3835028

سؤال

أنا استخدم أحدث إصدار من Facebook SDK (وهو ما يتيح الاتصال بشيء يسمى "API Graph" رغم أنني لست متأكدًا). لقد قمت بتكييف رمز مثال Facebook للسماح لي بالاتصال بـ Facebook وهذا يعمل ... لكن لا يمكنني الحصول على قائمة بأصدقائي.

$friends = $facebook->api('friends.get');

هذا ينتج رسالة الخطأ: "خطأ فادح: OauthException غير معلوم: (#803) بعض الأسماء المستعارة التي طلبتها غير موجودة: Friends.get remrown in /mycode/facebook.php على السطر 543"

لا دليل لماذا هذا أو ماذا يعني ذلك. هل يمكن لأحد أن يخبرني بناء الجملة الصحيح (لأحدث واجهة برمجة تطبيقات Facebook) للحصول على قائمة بالأصدقاء؟ (لقد جربت "$ friends = $ facebook-> api-> friends_get () ؛" واحصل على خطأ مختلف ، "خطأ فادح: اتصل على وظيفة العضو Friends_get () على غير كائن في /example.php على الخط 129 ".)

يمكنني أن أؤكد أنه قبل هذه النقطة في الكود الخاص بي ، تكون الأمور على ما يرام: أنا على اتصال بفيسبوك مع جلسة صالحة ويمكنني الحصول على معلوماتي وتفريغها على الشاشة فقط ... أي أن هذا الرمز ينفذ تمامًا قبل الأصدقاء الفاشلون .

$session = $facebook->getSession();
if ($session) {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
}
print_r($me);
هل كانت مفيدة؟

المحلول

وأعتقد أن هذا هو ما تريد:

$friends = $facebook->api('/me/friends');

نصائح أخرى

هذا الإصدار المباشر من رمز PHP للحصول على أصدقائك من Facebook

<?php
    $user = $facebook->getUser();


    if ($user) {
        $user_profile = $facebook->api('/me');
        $friends = $facebook->api('/me/friends');

        echo '<ul>';
        foreach ($friends["data"] as $value) {
            echo '<li>';
            echo '<div class="pic">';
            echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
            echo '</div>';
            echo '<div class="picName">'.$value["name"].'</div>'; 
            echo '</li>';
        }
        echo '</ul>';
    }
?>

إن الحصول على الأصدقاء مثل @NFVS يصف هو وسيلة جيدة. إنه يخرج مجموعة متعددة الأبعاد مع جميع الأصدقاء مع معرف السمات والاسم (المطلوب بواسطة ID). يمكنك رؤية صور الأصدقاء مثل هذا:

foreach ($friends as $key=>$value) {
    echo count($value) . ' Friends';
    echo '<hr />';
    echo '<ul id="friends">';
    foreach ($value as $fkey=>$fvalue) {
        echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>';
    }
    echo '</ul>';
}

مجرد رؤساء لأي شخص يتعثر عبر هذا السؤال باستخدام v2.0 من رسم بياني API: لن يعمل هذا بعد الآن. في v2.0 ، يعيد الاتصال /أنا /الأصدقاء قائمة أصدقاء الشخص فقط استخدم أيضًا التطبيق:

  • مطلوب رمز وصول المستخدم مع user_friends إذن لعرض أصدقاء الشخص الحالي.
  • سيؤدي هذا إلى إرجاع أي أصدقاء استخدموا (عبر تسجيل الدخول إلى Facebook) التطبيق الذي يقدم الطلب.
  • إذا رفض أحد صديق الشخص إذن user_friends ، فلن يظهر هذا الصديق في قائمة الأصدقاء لهذا الشخص.

إذا كنت تريد استخدام نقطة نهاية الراحة ،

$friends = $facebook->api(array('method' => 'friends.get'));

وإلا إذا كنت تستخدم واجهة برمجة تطبيقات الرسم البياني ، فاستخدم ،

$friends = $facebook->api('/me/friends');

في الإصدار الأخير من Facebook SDK ، قام Facebook بتعطيل الميزة التي تتيح لك الوصول إلى قائمة أصدقاء واحدة لأسباب أمنية ... تحقق من الوثائق لمعرفة المزيد ...

استخدم FQL بدلاً من ذلك ، إنه مثل SQL ولكن بالنسبة لجداول بيانات Facebook ويغطي بسهولة استعلام البيانات الذي ترغب في صنعه. لن تضطر إلى استخدام جميع مكالمات/XX/XXX/XX ، فقط تعرف على الجداول والأعمدة التي يتم تقاطعها.

$myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
$facebook->api( "/fql?q=" . urlencode($myQuery) )

أمثلة تفاعلية رائعة في http://developers.facebook.com/docs/reference/fql/

باستخدام Codeigniter OAUTH2/0.4.0 Sparks ،

في ملف auth.php ،

$user = $provider->get_user_info($token);

$friends = $provider->get_friends_list($token);
print_r($friends);

وفي ملف facebook.php ضمن مزود ، أضف الوظيفة التالية ،

    public function get_friends_list(OAuth2_Token_Access $token)
    {
            $url = 'https://graph.facebook.com/me/friends?'.http_build_query(array(
                    'access_token' => $token->access_token,
            ));
            $friends = json_decode(file_get_contents($url),TRUE);

            return $friends;
    }

prints the facebenter code hereook friends.
friends.get

هي وظيفة للحصول على قائمة من الأصدقاء

ونعم هذا هو الأفضل

    $friends = $facebook->api('/me/friends');

    echo '<ul>';
    foreach ($friends["data"] as $value) {
        echo '<li>';
        echo '<div class="pic">';
        echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
        echo '</div>';
        echo '<div class="picName">'.$value["name"].'</div>'; 
        echo '</li>';
    }
    echo '</ul>';

رأس ('نوع المحتوى: text/html ؛ charset = utf-8') ؛

إدخال في صفحتك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top