2012-04-19 8 views
1

Game Centerの成果を含むApp Storeに既存のiOSアプリがあります。 Facebook Connectの実装も機能しているので、新しいAchievements Graph APIで利用できるソーシャルチャンネルを自分のアプリで活用したいと思っています。iOSアプリからFacebookの成果を登録して投稿する

私は自分のアプリの成果としてFacebookに登録する準備ができている対応する達成ページを作成しました。私が読んだことは、アプリの認証トークンは成果とスコアを提出するために使用する必要があるため、私はサーバー上でPHPスクリプトを使用しているので、自分の秘密鍵を自分のアプリのバイナリで配信する必要はありません。私は、成果やスコアを送信する際に、自分のサーバーにスクリプトを呼び出そうとしています。

私はネイティブiOSアプリで使用しているのと同じFBアプリを使用しています。明らかに、ユーザーが業績を達成したり、新しい高得点に達したときに、ストーリーやタイムラインイベントを生成したいと思っています。

しかしFBアプリの成果を登録しようとすると、大きな詰まりが発生しています。私は登録を行うスクリプトで次のエラーを取得する:

OAuthException: (#15) This method is not supported for native apps 

私はなど、成果のためのURLと/<appid>/achievements APIへのPOSTを送信して、右に

をすべてをやっているように見えますFacebookによるこれらのAPIの限界を回避しようと努力しています。私はまた、既存のモバイルアプリをデベロッパー設定で「ウェブサイト」と「Facebook上のアプリ」にすることも可能にしました。無駄に。

私の質問は...仲介サーバーを通じてiOSアプリケーションから送信できる成果を得るために何か不足していますか?私はキャンバスページなどを必要に応じて設定しても構いませんが、Facebookのストリームにアチーブメントやスコアを投稿できるように、ユーザーを完全に別のアプリとして再認証させることはありません。

私が達成しようとしているのは、多くの場合、です。は、必要に応じて、デバイス上の既存のアプリケーションに対する追加権限をユーザーに求めています。私のサーバー上でスクリプトを起動して、必要に応じて成果をFacebookにプッシュすることは可能です。

ネイティブモバイルアプリに設定されていない別のFBアプリを使用するには、これを行う唯一の方法はありますか、それともネイティブ/ウェブアプリの組み合わせにすることはできますか?

答えて

1

これはおそらく、あなたのアプリケーションをFacebook側で 'web'の代わりに 'Native/Desktop'として設定したことを意味します。それはあなたがクライアントコードでそれを出荷したと仮定ですので、アプリの秘密は信頼されていない。この構成では

- あなたのiOSアプリは、「ウェブ」モードで動作するので、(その代わり

を使用しないという理由はありません私はあなたが実際にクライアントコードであなたのアプリの秘密を出荷していないと仮定しています - あなたが持っている場合は、アプリが 'ネイティブ/デスクトップ'に設定されていない限り、大きなセキュリティ上の問題です)

+0

まあ、それは意図的です。私はそれが私のクラウドサーバーを介して動作するようにしようとしているので(モバイルアプリケーション内のアプリの秘密の船積みなし)、私はモバイルユーザーのための既存の認証フローを維持することができます同じFBアプリの資格情報を使用しています。 – megastep

+0

OK、私はあなたが何を意味するかを見ていると思います。アプリのタイプの最初のタブでの選択に加えて、[詳細設定]タブの設定が異なるというのはちょっと混乱します。 Webに設定すると、エラーは発生しなくなりました...現在、iOS側で何かが壊れているかどうかを確認する必要がありますが、進歩しています! – megastep

関連する問題