簡體   English   中英

IOS中的Facebook登錄可以在模擬器上運行,但不能在安裝了本機應用程序的設備上運行

[英]Facebook login in IOS works on emulator but not on device with native app installed

面臨以下問題:需要在IOS 7中執行Facebook登錄。該操作在模擬器上正常進行,但是在安裝了本機應用程序的設備上運行時,會話不授予執行登錄的權限。

使用代碼創建會話: 在此處輸入圖片說明

checarLogin方法的工作方式如下:

在此處輸入圖片說明

我已經用谷歌搜索找到它,並發現控制Facebook應用程序權限的設備設置在兩種情況下的工作方式不同:

仿真器給予權限沒有問題:

在此處輸入圖片說明

下圖也來自仿真器,但僅用於說明設備默認的工作方式:

在此處輸入圖片說明

所以問題是:在安裝了本地Facebook應用程序的真實設備中運行時,還有其他方法可以處理登錄,並使其無需更改iPhone設置即可接受權限?

這是我在應用程序中使用的,您必須允許登錄UI。

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI completionHandler:(FBSessionStateHandler)handler {

// We pass this permissions array into our request.
// I only request email, but there are many more options.
//
NSArray *permissions = @[@"email", @"basic_info"];

return [FBSession
        openActiveSessionWithReadPermissions:permissions
        allowLoginUI:allowLoginUI
        completionHandler:^(FBSession *session,
                            FBSessionState state,
                            NSError *error) {

            if (handler)
                handler(session, state, error);
        }];

}

這就是你使用它的方式

        [self openSessionWithAllowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {

            if (!error && status == FBSessionStateOpen) {
                NSString *token = session.accessTokenData.accessToken;

                // You're logged in!

            } else {

                // Something wrong happened

            }
        }];

我遇到了類似的問題,這對我有用:

https://stackoverflow.com/a/12069251/2407717

一位同事更改了我們的某些項目設置,包括Bundle Identifier ,因此它不再與Facebook上的iOS Bundle ID相匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM