2017-04-08 44 views
5

我已將離子云服務添加到我的應用程序,並且想要使用本地FaceBook身份驗證。Ionic/cloud-angular FacebookAuth給出空錯誤

import { FacebookAuth } from '@ionic/cloud-angular'; 

this.facebookAuth.login() 

當運行在Android手機上這個功能,如預期我得到了Facebook提示詢問是否我的應用程序可以得到權限讀取配置文件和電子郵件。當我點擊YES,函數返回一個空的錯誤對象:

Object {} 

我敢肯定,我抓住它的權利,因爲當我選擇取消在FB上的提示,我得到這個錯誤對象:

Object {errorCode: "4201", errorMessage: "User cancelled dialog"} 

注意:我在Chrome中使用遠程Web檢查器來查看完整控制檯。不幸的是,因爲這需要一個真正的設備,我不能把這個問題弄糟。但是,我希望有人知道爲什麼會發生這種情況。我遵循了所有步驟,包括FB開發人員設置,哈希和ionic.io設置。

+0

你用這個嗎? https://ionicframework.com/docs/native/facebook/ – Sampath

+0

實際上,有一個細微的差異,我試圖使用離子云服務,但總體上這些步驟是相似的。 https://docs.ionic.io/services/auth/facebook-native.html –

回答

1

好這是相當愚蠢的,但第一個根本原因是,FB用戶,我試圖與未註冊的測試登錄。顯然在這種情況下,插件會返回一個空的錯誤。

作爲測試者添加後,我收到了一個真正的錯誤(Andoird聲明不允許互聯網訪問)。解決了這個問題後,我又得到一個空的錯誤。

所以我的假設是,由FB返回的一些錯誤沒有很好地通過插件,所以任何其他FB錯誤可能會導致此問題。

更新23/04:FB側似乎有一個變化,現在FB登錄屏幕沒有成功,但給出了有關散列鍵的錯誤。解決該問題後,FB登錄正在工作。

1

我已經做到了,它在真實設備上工作正常。如果您有任何問題,請在下面評論。

Git Repo

enter image description here

app.module.ts播放

import { CloudSettings, CloudModule } from '@ionic/cloud-angular'; 

const cloudSettings: CloudSettings = { 
    'core': { 
    'app_id': 'd32c02d2' 
    }, 
    'auth': { 
    'facebook': { 
     'scope': ['public_profile', 'email'] 
    } 
    } 
}; 

@NgModule({ 
    declarations: [ 
    ], 
    imports: [ 
    CloudModule.forRoot(cloudSettings) 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
    ], 
    providers: [ 

    ] 
}) 
export class AppModule { } 

home.html的

<button ion-button block type="button" (click)="fbLogin()">Fb Login</button> 

home.ts

import { Component } from '@angular/core'; 
import { FacebookAuth, User } from '@ionic/cloud-angular'; 


@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    constructor(public facebookAuth: FacebookAuth, public user: User) { 

    } 

    fbLogin() { 
    this.facebookAuth.login(); 
    } 

} 
+1

感謝您的詳盡示例! –

+0

在您的屏幕截圖中,它只顯示FB提示。我確實得到了這個(本地的一個),但它是從那裏繼續進行時,我得到的錯誤 –

+0

它與我的電子郵件和密碼工作得很好。我不需要在這裏顯示我的電子郵件和密碼。這就是爲什麼我沒有'不要走得更遠。 – Sampath