[英]android sending facebook token to server and publishing to feed
在我的應用程序中,我要求用戶通過Facebook登錄,然后將接收到的令牌發送到服務器,並從該服務器發布到用戶時間軸。
我使用sromku簡單的Facebook包裝器。 我要求這些權限:
Permission[] permissions = new Permission[] {
Permission.USER_PHOTOS,
Permission.EMAIL, Permission.PUBLISH_ACTION,
Permission.PUBLIC_PROFILE, Permission.READ_FRIENDLISTS,
Permission.USER_ABOUT_ME
};
問題是,如果我從Android應用程序將Feed對象發布給用戶,則發布該對象沒有問題,但是當我嘗試從服務器執行相同操作時,我得到了:
(#200) The user hasn't authorized the application to perform this action'
如果我請求令牌的可用權限,則會得到:
installed [status] => granted
public_profile [status] => granted
email [status] => granted
read_friendlists [status] => granted
user_activities [status] => granted
user_photos [status] => granted
user_about_me [status] => granted
沒有publish_actions和publish_stream(沒有選擇在我知道的簡單Facebook中問這個問題)。
也許有人可以幫助我確定問題出在哪里?
[編輯]列出從原始facebook會話檢索到的權限(帶有:simpleFacebook.getSession()。getPermissions())對象后,我看到:
Permission: public_profile
Permission: email
Permission: contact_email
Permission: read_friendlists
Permission: user_activities
Permission: user_photos
Permission: user_about_me
這確實很奇怪,因為它沒有列出我的publish_actions權限,但仍成功發布到了我的提要。
根據https://github.com/sromku/android-simple-facebook/blob/master/Simple%20Facebook/src/com/sromku/simple/fb/Permission.java#L46的規定 ,應該可以請求PUBLISH_ACTION
權限,就像您的代碼中已有的一樣。
我猜您不是在使用應用程序的管理員/測試人員/開發人員用戶? 然后,您必須先通過Facebook應用程序審查,然后才能請求擴展權限,如https://developers.facebook.com/docs/apps/review/login#do-you-need-review中所述
我正在使用這種方法:
publish(feed, true, new OnPublishListener() {});
它會打開webview對話框,所以我實際上是在Facebook上發帖的,這就是為什么我不需要權限。 當我更改為:
publish(feed, new OnPublishListener() {});
我有一個對話框,我必須在其中接受發布權限。 之后,我可以將令牌從服務器發布到Facebook上。
這里的問題是,我認為如果在創建SimpleFacebook obect之前指定所有權限,然后調用登錄方法,我將獲得所有權限。 但這僅適用於讀取權限。 要獲得發布權限,您必須在登錄后顯式調用requestNewPermissions方法,以獲取所需的發布權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.