AppStoreにGameCenterの実績を含む既存のiOSアプリがあります。Facebook Connectの実装も機能しているので、新しいAchievementsGraphAPIを介して利用できるソーシャルチャネルをアプリで活用したいと思います。
アプリのアチーブメントとしてFacebookに登録する準備ができている対応するアチーブメントページを作成しました。私が読んだことから、成果とスコアを送信するにはアプリ認証トークンを使用する必要があるため、いくつかのPHPスクリプトを使用してサーバー上でこれらすべてを実行しているため、アプリのバイナリと一緒に秘密鍵を出荷する必要はありません。 。実績やスコアを送信するときに、iOSアプリでサーバー上のスクリプトを呼び出すようにする予定です。
ネイティブiOSアプリと同じFBアプリを使用しています。明らかに、ユーザーがアチーブメントのロックを解除したとき、または新しいハイスコアに達したときに、ストーリーとタイムラインイベントの生成を開始したいと思います。
しかし、FBアプリの実績を登録しようとすると、大きな障害にぶつかります。登録を行うスクリプトで次のエラーが発生します。
OAuthException: (#15) This method is not supported for native apps
/<appid>/achievements
成果のURLなどを添えてAPIにPOSTを送信するなど、すべてが正しく行われているようです。
FacebookによるこれらのAPIの制限を回避するために、開発者設定で既存のモバイルアプリを「Webサイト」および「Facebook上のアプリ」にすることもできます。無駄に。
だから私の質問は...iOSアプリから中間サーバーを介して送信できる実績を有効にするための何かが欠けていますか?必要に応じてキャンバスページなどを設定してもかまいませんが、Facebookストリームに実績やスコアを投稿できるようにするためだけに、ユーザーに完全に別のアプリとして再認証させたくありません。
私が達成しようとしているのは、必要に応じて、せいぜいデバイス上の既存のアプリに対する追加の権限をユーザーに求めることです。必要に応じて実績をFacebookにプッシュするスクリプトをサーバーで呼び出すことができるはずですが、どのようにしたらよいでしょうか。
これを行う唯一の方法は、ネイティブモバイルアプリとしてまったく設定されていない別のFBアプリを使用することですか、それともネイティブ/ Webアプリの組み合わせにすることはできますか?