গ্রাফ এপিআই ব্যবহার করে ফেসবুক 'ফ্রেন্ডস.জেটএপ ব্যবহারকারীরা'


87

আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে যা পুরানো REST এপিআই কলটি ব্যবহার করে Friends.getAppUsers বর্তমান ব্যবহারকারীর জন্য আমার তালিকার অনুমোদিত বন্ধুদের তালিকা পেতে ব্যবহার করে।

আমি ডকুমেন্টেশন পড়েছি, গ্রাফ এপিআই দিয়ে এটি কীভাবে করব? এর উদাহরণ কী হবে?

উত্তর:


119

আমি কিছুক্ষণের জন্য অনুসন্ধান করেছি এবং আমিও ভেবেছিলাম গ্রাফ এপিআই ব্যবহার করা সম্ভব নয়।

তবে, আমি একটি অনুরূপ প্রশ্ন পোস্ট করেছি, পুরানো গেটঅ্যাপ ইউজারদের জন্য প্রতিস্থাপন আমার ব্যবহারকারীর বন্ধুদের দেখার জন্য কল করুন? , নির্দিষ্ট এপিআইয়ের জন্য আমি ব্যবহার করছিলাম এবং একটি দুর্দান্ত সাধারণ উত্তর দেওয়া হয়েছিল।

https://graph.facebook.com/me/friends?fields=installed

বা আরও সাধারণভাবে

https://graph.facebook.com/{user id}/friends?fields=installed

এটি অ্যাপ্লিকেশনটি ব্যবহার করে এমন বন্ধুদের জন্য অতিরিক্ত ক্ষেত্র "ইনস্টলড = ট্রু" সহ সমস্ত বন্ধুকে ফিরিয়ে দেয়।

এটি গ্রাফ এপিআই এক্সপ্লোরারে কাজ করছে :


4
হাঁ; আমি এই প্রশ্নের উত্তর দিয়ে আপনার প্রশ্নের উত্তর দিয়েছি: facebook.stackoverflow.com/questions/7956639/…
আইজি

4
এই কোয়েরিটি কোন অ্যাপ্লিকেশনটির জন্য ইনস্টলেশনটি পরীক্ষা করে?
আইওএস মনস্টার

4
ধরে নিই যে আপনি অন্য কোনও ক্ষেত্র (যেমন ই-মেইল, জন্মদিন, ইত্যাদি) পুরোপুরি ব্যবহারের জন্য ব্যবহার করছেন না /me/friends?fields=id,name,installed, যা ক্ষেত্র ক্রম সংরক্ষণ করে এবং স্ট্যান্ডার্ড তথ্য যা ?fields=সংজ্ঞায়িত না করেই ফিরে আসে (2012/12/05 তে সত্য)।
plasmid87

4
এই লেখার সময়, এই ক্যোয়ারী সমস্ত বন্ধুকে ফেরত দেয় (এমনকি যার installedজন্য এটি সত্য নয়)। installedপ্রতিটি ব্যবহারকারীর জন্য ক্ষেত্রটি বিদ্যমান কিনা তা আমাদের ম্যানুয়ালি পরীক্ষা করতে হবে ।
পঙ্কজ ভম্ভনী

হ্যাঁ এটি সঠিক, আপনি সমস্ত বন্ধু পেয়েছেন এবং এটি আপনার কাছে ইনস্টল করা পতাকা রয়েছে কিনা তা যাচাই করতে হবে তা পরিষ্কার করার জন্য আমি উত্তরটি সম্পাদনা করেছি।
অ্যালেক্স

27

এটি এফকিউএল দিয়ে করা যেতে পারে।

SELECT uid FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = ?)
AND is_app_user = 1

কিয়েড!


4
আমি মূলত এই ক্যোয়ারীটি ব্যবহার করেছি এবং অল্প সময়ের কারণে এখন আমি কেবলমাত্র গ্রাফ এপিআইয়ের মাধ্যমে সমস্ত বন্ধু পেয়েছি এবং তার পরিবর্তে আমার অ্যাপ্লিকেশন দিকে ফিল্টার করব।
রিচার্ড

এই বিলম্ব সম্পর্কে আরও বিশদ দিতে পারেন? এটি কি প্রশ্নের উত্তর দিতে খুব বেশি সময় নিচ্ছে? আমি প্রায় 300+ বন্ধুদের সাথে একটি এফবি অ্যাকাউন্ট দিয়ে পরীক্ষা করছি এবং প্রতিক্রিয়া সময় কয়েক সেকেন্ড (2 থেকে 4) হয়েছে, যা খুব খারাপ আইএমও নয়।
লাউঞ্জারডর্ক

4
হ্যাঁ, এটাই আমি দেখতে পাচ্ছি। গ্রাফ এপিআই 400+ জন বন্ধু ফিরে পেতে 500 মিমির ক্রম গ্রহণ করে তাই আমি সেগুলি পেতে এবং তারপরে আমার দিকে ফিল্টার করতে পছন্দ করি।
রিচার্ড

4
আপনি কি me()পরিবর্তে ব্যবহার করতে পারেন ?
ফিলাফ্রেও

8

হ্যাঁ, গ্রাফ এপিআই ভয়াবহভাবে নথিভুক্ত। আমি "অ্যাপ্লিকেশন" ধরণের জন্য কোনও ডকুমেন্টেশন দেখি না , তবে তারা ডক্সে একটি অ্যাপ্লিকেশনটির তথ্য উল্লেখ করে:

https://ographic.facebook.com/2439131959

সুতরাং, সম্ভবত আপনি গ্রুপ সিনট্যাক্স ব্যবহার করে অ্যাপ্লিকেশনটির সদস্য পেতে পারেন?

https://راف.facebook.com/2439131959/ মেম্বার

এটি পরীক্ষা করার জন্য আপনার একটি অনুমোদনের অধিবেশন প্রয়োজন। অন্যথায়, দেখে মনে হচ্ছে ফেসবুক আমাদের সরাসরি জিজ্ঞাসা প্রেরণের জন্য FQL ব্যবহার করতে চাপ দিচ্ছে:

http://developers.facebook.com/docs/references/fql/application

আপনি https://api.facebook.com/method/fql.query?query=QUERY এনে FQL কোয়েরিগুলি সম্পাদন করতে পারেন । আপনি XML বা JSON হিসাবে ফর্ম্যাট ক্যোয়ারী প্যারামিটার হিসাবে প্রতিক্রিয়া ফর্ম্যাট নির্দিষ্ট করতে পারেন।

সুতরাং আপনি আপনার অ্যাপ্লিকেশন সম্পর্কে তথ্য পেতে একটি এফকিউএল কোয়েরি পাস করতে পারেন।


4
উঃ গ্রাফ এপিতে হালকা স্যুইচ করা আমার মাথাব্যাথা যা মূলত আশা করেছিল of
রিচার্ড

4
এফকিউএল ব্যবহার করে আপনার প্রয়োজনীয় সবকিছু (প্রকাশনা ব্যতীত) করা সম্ভবত সহজ easier গ্রাফ এপিআই, সর্বোপরি, আপনাকে প্রয়োজনীয় সমস্ত কিছু দেবে না এবং সর্বোপরি, কীভাবে এটি করা যায় তা খুঁজে পাওয়ার জন্য বিরক্তিকরভাবে শক্ত হয়ে উঠবে।
ড্যানিয়েল শেফার

6

পুরাতন REST এপিআই:

$facebook->api_client->friends_getAppUsers();

নতুন গ্রাফ এপিআই:

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

4
এই SDK পদ্ধতি কলটি কভারগুলির নীচে পুরানো বিশ্রাম এপিআই ব্যবহার করে। এটি গ্রাফিক এপিআই নয় :-(
রিচার্ড

5

আমি এই বিষয়টি নিয়ে অনেক তদন্ত করেছি। আমি যা বলতে পারি তা থেকে Friends.getAppUsersগ্রাফ এপিআই ব্যবহার করার কোনও উপায় নেই । ফেসবুকের দেওয়া সর্বশেষতম এসডিকে অ্যাপ্লিকেশনটি ব্যবহার করে বন্ধুরা পেতে পুরানো REST এপিআই ব্যবহার করে।


6
এটি বেশ পুরানো এবং সঠিক উত্তর আর নেই। শীর্ষে অ্যালেক্সের উত্তরটি দেখুন।
বাচ

এটি সঠিক উত্তর নাও হতে পারে তবে এটি ওপি'র উত্তর এবং সঠিক উত্তরকে সঠিক হিসাবে চিহ্নিত করার চেয়ে নিজেকে উজ্জীবিত করা ভাল because
আজাক্স

4

রেস্টএফবি ব্যবহার করে , আমি নিম্নলিখিতগুলি করেছি (গাইডের জন্য আইজি / অ্যালেক্সকে ধন্যবাদ)। নোট করুন যে ফেসবুক ব্যবহারকারী ইনস্টল করা থাকলে সত্য "ইনস্টলড" = এর সাহায্যে বন্ধু আইডির একটি অ্যারে প্রদান করে ( এখানে দেখা যাবে) )।

প্রথমে একটি installedক্ষেত্র যুক্ত করে ব্যবহারকারীর শ্রেণি প্রসারিত করুন :

import com.restfb.Facebook;
import com.restfb.types.User;

public class InstalledUser extends User {

    @Facebook
    private boolean installed;

    public InstalledUser() {        
    }

    public boolean getInsatlled() {
        return installed;
    }
}

পরবর্তী, ডিফল্টফেসবুক ক্লায়েন্ট ব্যবহার করে:

FacebookClient facebook = new DefaultFacebookClient(pFacebookAccessToken);
Connection<InstalledUser> installedFacebookUsers = facebook.fetchConnection("/" + pFacebookId + "/friends", InstalledUser.class, Parameter.with("fields", "installed"));        
for (List<InstalledUser> friends : installedFacebookUsers) {
    for (InstalledUser friend : friends) {
        if (friend.getInsatlled()) {
            // Add friend.getId() to a list of ID, or whatever
        }
    }
}

1

কর্মক্ষেত্রটি নিজেকে ফিল্টারিং করা। সম্ভবত, আপনার নিজের ব্যবহারকারীদের সমস্ত ইউডি আপনার নিজের ডাটাবেসে বসে আপনার অ্যাপ্লিকেশনটির জন্য সাইন আপ করেছেন। সুতরাং প্রথমে সমস্ত ব্যবহারকারীর বন্ধুদের 'ইউডস' পান এবং আপনার ডাটাবেস থেকে এমন ব্যবহারকারীদের নির্বাচন করুন যাদের মিল রয়েছে u

নতুন ফেসবুক গ্রাফ এপিআই প্রোগ্রামটি খুব খারাপভাবে কার্যকর হয়েছে বলে মনে হচ্ছে না quite দেখে মনে হচ্ছে তারা এটি পরিণত হওয়ার আগেই ফেসবুক এফ 8 এর জন্য প্রকাশ করতে ছুটে গিয়েছিল এবং প্রচুর কার্যকারিতা অনুপস্থিত যা আগে পাওয়া ছিল।


0

আপনি এখনও নতুন গ্রাফ এপিআই-তে পুরানো REST এপিআইকে কল করতে পারেন। এটি অবশ্যই বৈধ।

বিকল্প উপায় হ'ল অ্যাপ্লিকেশন ব্যবহারকারীর বন্ধুদের পেতে FQL ব্যবহার করা।

আমি নিশ্চিত নই যে কেবল গ্রাফ এপিআই ব্যবহার করে এটি করার কোনও উপায় আছে কিনা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.