6

私はこれに何時間も費やしましたが、うまくいきません。基本的には、自分のアプリに、Facebook で自分自身を「いいね」するボタンが必要なだけです。私はdev Facebookでアプリを作成し、関連するアプリページを持っています。私のコードでは、これらのアクセス許可を要求します。

_permissions =  [NSArray arrayWithObjects:@"publish_stream", @"publish_actions", @"user_birthday", nil];

プロフィール写真は問題なく取得できますが、次のコードを使用して「いいね」しようとすると:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       _facebook.accessToken, @"access_token",
                                       nil];
        [_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:self];

次のエラー応答が表示されます。

(facebookErrDomain error 10000.)" UserInfo=0x20090590 {error={
    code = 200;
    message = "(#200) Requires extended permission: publish_actions";
    type = OAuthException;
}}

アプリにログインすると、Facebook が私の誕生日を表示する許可を求めてきて、代わりに投稿すると言われましたが、publish_actions 許可を得ていないようです。

私がしなければならないことが欠けていますか?

Temple Run には Facebook の Like ボタンがあり、それを押すとボーナス コインが提供されるようです。これが私が達成したいことです。

編集 - - - -

権限を @"publish_actions"、@​​"user_birthday" だけに変更したところ、認証ダイアログに次のように表示されました

「このアプリは、あなたが気に入ったオブジェクトなどを含め、あなたに代わって投稿することがあります」

これは publish_actions 許可のようですが、まだエラーが発生していました

message = "(#200) 拡張アクセス許可が必要です: publish_actions";

この行を変更しました:

[_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:selrf];

これに:

[_facebook requestWithGraphPath:@"329756493773381/og.likes" andDelegate:self];

そして、「いいね」を投稿していませんが、応答が返ってきます

これは結果応答です。

{
    data =     (
    );
    paging =     {
        next = "https://graph.facebook.com/329756493773381/og.likes?sdk=ios&sdk_version=2&access_token=BAAGeAp3ZBGwoBAPICjlgB5zK0YECyP8yElf8hJoMrx8Qs4vjeZAK5PlXFAVbGM1JyXHE0wZBvU0aBeCzCUTZBejQgoJ44CAIQsrG64TfrHdxjMqWD&format=json&offset=25&limit=25";
    };
}

次に何を試してみますか?

EDIT 2 --------------- 私はこれを進めています。このようにユーザーIDをグラフリクエストに追加しました

NSString *graphPath = [NSString stringWithFormat:@"%@/og.likes",facebookID];

これらのパラメータを使用しました

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       @"AAAGeAp3ZBGwoBABvKjsPZAoQQNG9cDPJI2v2TI8acyyPSNtm9ZBkfydHqVZAjSKWSbLuvFwxyxSrCts7kFZCnh7Y6f5PFNlWb6smF8XF33wlRZBgfLyhT1", @"access_token",
                                       @"http://samples.ogp.me/329756493773381", @"object",
                                       nil];

そして今、タイムラインにいいねが表示されます:-) Facebookログインによって提供されたアクセストークンを使用していましたが、グラフオブジェクトによって提供されたものは異なるようです.

今、私が見ているようなものにはこのパターンがあります:

Darren は MyAPP のオブジェクトが好きです

それをそのままにすることさえ可能ですか

Darren は MyAPP が好きで、アプリの Facebook ページにリンクしていますか?

ありがとう

4

2 に答える 2

5

以下の手順を実行したかどうかを確認してください。

https://developers.facebook.com/docs/opengraph/tutorial/

「注:この権限のユーザープロンプトは、拡張認証ダイアログの最初の画面に表示され、認証フローの一部として取り消すことはできません。」- リンク

まだ行っていない場合は、これを試してください。

[認証]ダイアログ->Facebookがユーザーをアプリに参照する方法を構成します->publish_actions権限を追加します。

https://developers.facebook.com/docs/opengraph/authentication/

「新しい認証ダイアログを有効にするには、アプリダッシュボードに移動し、アプリの[詳細設定]セクションで[拡張認証ダイアログ]設定を有効にします。」-リンク

お役に立てれば!

于 2012-07-06T10:29:36.090 に答える
0

これは私がこのSOの質問で抱えていたのと同じ問題のようです: Facebook iOS SDK 3.0、URLに同様のアクションを実装しますか?

ただし、アプリでFacebookページを高く評価したい場合は、Objective Cでそれを行う方法はありません 。https ://developers.facebook.com/docs/reference/で生成できるjavascriptの「いいね」ボタンを使用するだけです。プラグイン/いいね/

テンプルランのやり方は、ウェブビューに「いいね」ボタンを表示することです。そのため、「いいね」ボタンは実際にはサーバー上にあります。これはおそらく醜いハックですが、ページを高く評価するために機能します。

于 2012-09-07T09:03:03.120 に答える