14

Facebookの設定で☞詳細☞認証「Web」または「ネイティブ/デスクトップ」を「App Type」として選択できます。インフォバブルは言う:Facebook App Type:モバイルとウェブのどちらを選ぶのですか?

あなただけがネイティブのiOSやAndroidアプリ、 デバイス、またはデスクトップアプリ

であれば実際に、私はそれらのどれも午前ませんが、私のアプリがネイティブであるネイティブ/デスクトップを選択しますFacebookのタブと同様にiOS App。
質問:私はどのアプリケーションタイプを選ぶべきですか?


私はいくつかの研究を行なったし、(トラブルシューティングの下)Facebook Android Tutorialで次のが見つかりました:ネイティブ/デスクトップ対

  • アプリケーションタイプWebを。それは問題ですか?:いいえ、それは 問題ではありません。ただし、アプリの に「ネイティブ/デスクトップ」タイプを使用することをおすすめします。

それは問題ではない何を意味するのでしょうか?それは私には意味がありません。なぜ私は選択肢を持っているべきですか?

私はSOにいくつかのより多くの研究を行なったし、@Igy(フェイスブックでのdevのサポートエンジニア)によるthis statementが見つかりました:

アプリの種類が「ネイティブ/デスクトップ」に設定されている場合、それはあなたに 分散アプリケーションの秘密を想定していますバイナリとキー、ひいてはアプリ アクセストークンが信頼されていません

(実際のユーザーがログインしたときにPHP SDK内と「getAccessTokenは」 は、それがアプリトークンにフォールバックすることができない、動作します)

最後に見つかりましたFacebook documentationでこの:

:ネイティブ/デスクトップアプリケーションとして構成されたアプリケーションは、アプリケーションaccess_tokenが必要なAPI呼び出しを行うことはできません ます。

、それゆえ私の結論はアプリケーションの種類として「ウェブ」を選択することです、私はそれを用いたネイティブiOSアプリを抱えているが、私は、私のページタブのアプリからアクセストークンを必要とするAPI呼び出しを行う必要がありますアプリIDをページタブアプリとして設定しますでも、iOSアプリには何か欠点があるだろうか?

答えて

15

TL; DR:あなたはそれはそれは問題ではない」と言った理由ものiOS/Androidのバイナリ

主な違いにアプリの秘密を入れて(としている場合を除き、使用のWeb 'も、しばらくあなたが「ネイティブ/デスクトップ」モードを選択した場合、アプリケーションの秘密が埋め込まれたアプリバイナリを配布し、アプリの秘密は信頼できないものとみなされるということです。

この設定では、アプリのシークレットを使用するAPI呼び出し(例:テストユーザーの作成、アプリケーション設定の変更、業績の掲載などのアプリ自体に代わってAPI呼び出しを行うなど)は機能しません。

アプリがアプリのシークレット/アプリのアクセストークンを使用する必要がない場合は、ネイティブ/デスクトップに設定すると、アプリの攻撃経路が1つ少なくなるため、セキュリティがいくらか向上します。

コードでアプリのシークレットを配布する場合は、そのオプションを使用する必要があります。そうしないと、ユーザーはアプリの秘密を簡単に特定してアプリをハイジャックする可能性があります。

関連する問題