0

SimCity BuildIt、HayDay、Paradise Bay(私が言うことができるように近い)はFBログインをserver based authenticationで行っています。 (それぞれFB APIバージョン2.2,2.2,2.6)OAuth経由でサーバーサイドのログインを行っている人気ゲームはどのくらい正確ですか?

これらはすべて「redirect_uri=fbXXXXXXXXXXXXXXX://authorize」のバリアントを使用しています(XXXはFBアプリケーションIDです)。これは、リダイレクトがFacebookに戻った場合にトークンを実際に取得する方法がわからないため、非常に混乱します。

「コールバックURIの承認」があっても、FBは「認証解除コールバックURI」を提供するだけで意味があります。

私は、異なるトークンタイプ、または異なるリダイレクト戦略を使用するつもりはありません。これはモバイルゲームのためのものであり、すべての主要ゲームがこのように認証される理由があると思います。私はまた、Facebook SDKを使用することができません。これは、無線のバイナリサイズに余分な量が追加されるためです。 AppleはまだOTAを100MBに制限しています。

+0

はどのくらいです...のようなものである必要があります巨大な肥大? – WizKid

+0

私たちの無線でのサイズに50 MB。現在のサイズは100 MBをわずかに上回っているため、バイナリサイズのコストをかけずにWebアプローチを使用して行うことができるものの50%の増加にすぎません。 私はほとんどそれを考え出しました。私は完全な答えを持っています。 – Wisteso

+0

いいえ、そうではありません。ダウンロードしたSDKではなく、バイナリを測定してください – WizKid

答えて

0

これを最後に考え出します。したがって、fbXXXXXXXXXXXXXXX://許可リダイレクトは、iOS URL Schemeと組み合わせて使用​​され、APP IDの先頭に「fb」を使用してスキームを登録します。その後、FacebookはリダイレクトURLの最後に少しのデータを追加します。したがって、最終結果は<user_token>が長いSHA256でエンコードされた値(アプリの秘密を使用しています)であるfbXXXXXXXXXXXXXXX://authorize/#signed_request=<user_token>&expires_in=1234567のようになります。

これは、必要に応じてargsをデコードして解凍してから、https://graph.facebook.com/v2.8/me/friends?access_token=<user_token>などの後続のリクエストにトークンを使用できるように、URLがアプリケーションに引き渡されることを意味します。 Unity 5を使用しているので、カスタムUnityAppControllerサブクラスに小さなコードを追加することを意味します。

それは多分、他のユニティ開発者にいくつかの頭痛の種を保存するために、この質問の範囲外多少だが、UnityAppControllerサブクラスのコードは

#import "UnityAppController.h" 

@interface MyAppController: UnityAppController {} 
@end 

@implementation MyAppController 
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation 
{ 
    const char *URLString = [[url absoluteString] UTF8String]; 
    UnitySendMessage("_MyUnityObject", "MyMethod", URLString); 
    return [super application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; 
} 
@end 

IMPL_APP_CONTROLLER_SUBCLASS(MyAppController) 
関連する問題