2015-01-20 12 views
6

Meteor geliştirme konusunda yeniyim ve bununla ilgili çok fazla sorun yaşıyorum. Ben çözüm saptadığımız en yakın şey şu rehber, bulunan: yanı umut verici http://www.andrehonsberg.com/article/facebook-graph-api-meteor-jsBir kullanıcının Facebook arkadaş listesine Meteor'da nasıl erişirim?

.getFriends() fonksiyonu burada duruyor, fakat bu hiçbir deneyime sahip: https://github.com/maxkferg/meteor-facebook-collections/

ben istemci/config/config.js aşağıdaki kodu uygulanan:

Accounts.ui.config({ 
    requestPermissions: { 
     facebook: ['email', 'user_friends', 'user_location', 'user_events', 
     'friends_events', 'friends_location', 'friends_about_me', 
     'user_status', 'friends_status', 'read_friendlists'], 
    } 
}); 

Bu düzgün log-in sırasında izinleri isteği oluşturan. (Ancak bir sorunum var. Aşağıdaki hatayı alıyorum: "Yakalanmadı Hatası: Accounts.ui.config: requestPermissions'u facebook için bir kereden fazla ayarlayamıyorum," gariptir, çünkü bu gizli hesaplara işaret eder .js dosyası, hiçbir erişim hakkına sahip değil. Ben bu kadar iyi geçersiz kılmamalı mıyım? Yukarıdaki kılavuz bu hatadan bahsetmiyor.)

Kılavuzun geri kalanını da uyguladım. hiçbir şey çalışmıyor gibi gözüküyor. Ayrıca, kılavuzda, kullanıcının verilerinin bir kısmının (arkadaş, yayın vb.) Bir listede görüntülenmesine neden olan bir düğme uygulanmış gibi görünüyor. Yine de herhangi bir görüntü istemiyorum; Sadece web uygulamasında çeşitli işlevler için kullanabilmem için verilere erişebilmeyi (belirli bir kullanıcının arkadaşlarına yönelik Facebook'a özgü bir dizi dizinin ideal olacağını) istiyorum.

Her türlü yardım gerçekten takdir edilecektir!

+0

Eğer izinleri gitmiş o arkadaş farkında mısın ve yalnızca alabilirsiniz uygulamanıza da yetki veren arkadaşlar, değil mi? Sadece izin verin, çünkü izinlerinizin yarısı kullanımdan kaldırıldı ve "read_friendlists" arkadaş edinmek için uygun değil. Facebook dokümanlarına bir göz atmanız gerekiyor. – luschn

+0

Evet, bunu şu yazıyla gördüm: http: // stackoverflow.com/questions/23417356/facebook-graph-api-v2-0-me-friends-return-empty-or-only-friends-who-ayrıca-u Sadece yetkili olan arkadaşlara erişebileceğim gibi görünüyor 'user_friends' (yani, uygulamamızı kılan). Bu, uzun vadede, kullanıcıların arkadaş listelerinin nispeten düzenli olarak güncellendiği sürece (ki her defasında çıkış yaptıkları ve tekrar giriş yaptıkları sürece) büyük bir sorun gibi görünmemektedir. Ayrıca, diğer izinler sadece rehber yüzünden oradadır; Ben sadece e-posta ve user_friends ile ilgileniyorum. –

cevap

7

Yorumunuzdan, sadece user_friends ve email ile ilgilendiğinizi anlıyorum.

Userlogin için accounts-facebook paketini kullanırsanız, zaten kullanıcının e-postasına sahipsiniz. Girişi kullanmak için servisi yapılandırmanız gerekir. Sen (more info) başlangıçta bu serverside yapın:

ServiceConfiguration.configurations.upsert({ 
     {service: "facebook"}, 
     { $set: { 
      appId: "XXX", 
      secret: "XXX", 
      requestPermissions: ['user_friends'] //here you are requesting the permission to get the user's friends 
     } 
    }); 

Sonraki adım, kullanıcının arkadaş almak olacaktır. Bunu yapmak için bir paket kullanabilir ya da el ile yapabilirsin: İlk olarak, kullanıcı size izin verdiyse, kontrol etmelisiniz.

GET /{user-id}/permissions 

Umarım formda bir nesne alacak: Facebook-API İsteği (API) Gönder

{ 
    "data": [ 
    ..., 
    { 
     "permission": "user_friends", 
     "status": "granted" 
    } 
    ] 
} 

Bunun anlamı, kullanıcı arkadaşları (almak için izin verdiyse more info). Bir sonraki adımda

, sen friendlists more info için Graph-API sorgusu:

GET /v2.3/{user-id}/friendlists HTTP/1.1 
Host: graph.facebook.com 

Bu sayede kullanıcının tüm friendlists alacak. Son adımda listelerin tümüne veya bazılarına ilişkin sorgulayabilir (örneğin 'Yakın Arkadaşlar', 'Tanıdıklar') more info ile:

GET /v2.3/{friendlist-id} HTTP/1.1 
Host: graph.facebook.com 
İlgili konular