私はしばらくの間、モバイル アプリに Appcelerator を使用してきましたが、Facebook SDK に問題があるため、アプリをネイティブに移行し、より詳細に制御できるようにするために、Swift を検討しています。
現在、すべてのアプリはバックエンドに Parse を使用しており、Facebook は Appcelerator Facebook モジュールを介してサインインしています。
ただし、Appcelerator でビルドされたすべての iOS バージョン (iOS9 以降) は、次のエラーでログインに失敗します。
-canOpenURL: failed for URL: "fbauth2:/" - error: "(null)"
1 つは Parse SDK を使用するプロジェクト、もう 1 つは Facebook SDK を使用するプロジェクトです。両方のプロジェクトが意図したとおりに実行され、オブジェクトが Parse に保存され、それぞれ Facebook でサインインされます。
Facebook プロジェクトはサインインし、ユーザーの電子メールと public_profile を正常に取得します。上記のエラーは引き続き発生しますが、サインイン プロセスやデータの取得には影響しません。
しかし、私は今、この 2 つを融合させて Parse FacebookUtils フレームワークを使用しようとしましたが、Appcelerator アプリで抱えていたのと同じ問題を抱えています。エラーが発生しましたが、何もありません。
これは、Appcelerator Facebook モジュールと同様に、上記のエラーが原因で FacebookUtils フレームワークがサイレントに失敗するように見えます。
だから、私の最初の質問は次のとおりだと思います:
iOS9 で Parse FacebookUtils フレームワークを使用して運が良かった人はいますか?
他の人が成功している場合は、さらに調査することができます。単に不可能なことを実装しようとして、何時間もかけてぐるぐる回りたいわけではありません。
- Xcode: 7.1.1
- ParseFacebookUtilsV4
- Facebook ログインキット: V4.8.0
これが私の迅速なログインコードです:
let readPermissions = ["public_profile","email","user_friends"]
PFFacebookUtils.logInInBackgroundWithReadPermissions(readPermissions, block: {
(user: PFUser?, error: NSError?) -> Void in
NSLog("Signing in")
if let user = user {
if user.isNew {
NSLog("User signed up through facebook")
} else {
NSLog("User logged in through Facebook")
}
} else {
NSLog("user cancelled login")
}
})
クロージャーが呼び出されることはなく、「サインイン」のログは出力されません。
それが役に立ったら、空白のプロジェクトを Github に投稿できます。
ありがとう
ポール