2016-01-29 63 views
1

我使用的帳戶,Facebook和fbgraph封裝,流星, 我的服務配置是這樣的:流星Facebook的API:user_friends許可失蹤

{ _id: 'zDCcCKawiBFrgLQ8Q', 
    service: 'facebook', 
    appId: edited, 
    secret: edited, 
    requestPermissions: [ 'user_friends' ] } 

我得到一個訪問令牌在登錄時,可以得到電子郵件和公衆形象很好,但我的權限只有包括那些權限,而不是user_friends:

{ data: 
    [ { permission: 'email', status: 'granted' }, 
    { permission: 'public_profile', status: 'granted' } ] } 

我以爲user_friends是一個給定的權限。我錯過了什麼?

+0

你從哪裏得到'從email'權限,如果你不甚至要求是什麼? – CBroe

+0

我知道基本權限是默認提供的嗎?他們不是嗎?編輯:我認爲他們來自我從登錄中獲得的訪問令牌。我試圖從服務配置中刪除requestPermissions,它似乎沒有影響。 –

+0

默認情況下,它們已被_approved_,這意味着您無需通過Facebook對其進行審覈,然後您就可以向其請求普通用戶。但它當然不意味着用戶會自動將這些權限授予您的應用程序 - 您仍然必須爲他們提供_ask_。 – CBroe

回答

2

通過重寫loginWithFacebook解決:

Template.third_party.events({ 
    "click .btn-facebook": function(e, t){ 
    Meteor.loginWithFacebook({ 
     requestPermissions: ['email', 'user_friends'] 
     }, function (err) { 
     if (err) 
     Session.set('errorMessage', err.reason || 'Unknown error'); 
    }); 
    } 
}); 

如果第三方是包括Facebook的按鈕模板。

+0

你可以請發佈如何?我有同樣的麻煩。 – mhlavacka

+0

當然,我只是編輯包含代碼。 –

+0

也請確保您的Facebook應用已正確配置 –

1

一個更好的解決辦法是在您的客戶端代碼如下配置:

Accounts.ui.config({ 
    requestPermissions: { 
     facebook: ['user_friends'] 
    } 
});