0

OK、ユーザーのウォール (タイムライン?) に投稿する方法を知っています。うまくいきます。

私が欲しいのは、ユーザーが自分の iPhone で特定のことをしたときに、それが APP の壁に投稿として表示されることです。投稿はユーザーの名前である必要があります。

何かのようなもの:

ラッキー・ルークの言葉: みなさん、こんにちは。

Zaphod Beeblebrox が Awesomeapp を使い始めました

プラス: アプリのユーザーのみがアプリのウォールに投稿できるようにする必要があります (ページの «アクセス許可の管理» の部分で、誰がウォールに投稿できるかを設定できる設定を見ました。誰もが投稿できるようにしたくありません。 )

私が正しければ、その投稿はユーザーのフィードにも自動的に表示されますよね? または、ユーザーのウォールに 2 回目の投稿を行う必要がありますか?

ユーザーが最初にアプリを使用するときに、次の権限を要求します: @"user_photos"、@"user_videos"、@"manage_pages"、@"read_stream"、@"publish_stream"、@"user_checkins"、@​​"friends_checkins"、@​​" email",@"user_location"

(最近、どこかで読んだときに read_stream と manage_pages を追加しましたが、役に立ちませんでした:)

これは、投稿を作成するために使用するコードです。

NSString *graphPath = [NSString stringWithFormat: @"/%@/feed?access_token=%@", FBAppID, [FBAccessToken stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
    NSLog(@"graph path %@", graphPath);
    NSDictionary *postParams =
    @{
        @"Test": @"message"
    };


    [FBRequestConnection
     startWithGraphPath:graphPath
     parameters:postParams
     HTTPMethod:@"POST"
     completionHandler:^(FBRequestConnection *connection,
                         id result,
                         NSError *error) {

         if (error) {
             NSLog(@"error: domain = %@, code = %d, %@",
                          error.domain, error.code, error.description);
         } else {
             NSLog(@"Posted action, id: %@",
                          [result objectForKey:@"id"]);
         }
         // Show the result in an alert
     }];

エラー 100 (メッセージまたは添付ファイルがありません - OAuthException) を返します。

私は2日間ほどグーグルで検索しましたが、適切なガイドラインが見つかりませんでした...ヘルプ!!! :)

【追記】何か企んでるかもしれません…

が問題だったようNSDictionary *postParams @{@"Test": @"message"};です。適切なものを使用する[[NSDictionary alloc] initWithObjectsAndKeys: ...];と、うまくいくようです...わかります:)

[編集] わかりました - 休憩を取る必要があるようです...

@{...} でディクショナリを初期化するには、最初にキー、次にオブジェクトが必要ですが、[NSDictionary dictionaryWithObjectsAndKeys:...] は最初にオブジェクトを設定し、次にキーを設定します...

私は今ちょっとばかげていると感じています...

4

1 に答える 1

0

これは私のコードでこれを行う方法です:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"My app's name", @"name",
                               @"Some cool caption", @"caption",
                               @"Super description", @"description",
                               @"http://stackoverflow.com//", @"link",
                               nil];


[FBRequestConnection startWithGraphPath:@"me/feed"
                             parameters:params
                             HTTPMethod:@"POST"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

       .....
 }];

注意してくださいGraphPath、それはあなたのものとは少し異なります。また、私のInfo.plist中にはfacebookId値があります。

<key>FacebookAppID</key>
<string>123456789876543</string>

およびFacebookのURLスキーム:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb123456789876543</string> (fb + your app id)
        </array>
    </dict>
</array>

そして私はfacebookSDKプロジェクトに追加しました(私はあなたがすでにこれをしたと思います)

少なくともこのようなものは私の壁に投稿するのに十分です

だからあなたのを見てくださいfacebookAppID、多分それに何かがあります、そしてこれが公式のフェイスブックチュートリアルである場合に備えて

于 2012-10-16T21:36:07.010 に答える