17

このようなユーザーのフィードに投稿しようとしています (最初は 1 つの画像しか表示されませんが、[さらに表示] をクリックすると 5 つの画像すべてが表示されます)。

5枚の画像で投稿

私のコードは次のようになります:

NSMutableArray *properties = [[NSMutableArray alloc] initWithCapacity:5];
NSMutableArray *media = [[NSMutableArray alloc] initWithCapacity:5];
for (MyObject *object in self.myObjects) {
    [properties addObject:[NSDictionary dictionaryWithObjectsAndKeys:object.name,@"text",
                                                                     object.link,@"href", nil]];
    NSString *imageUrlString = object.url.absoluteString;
    [media addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"image",@"type",
                                                                imageUrlString,@"src",
                                                                object.link,@"href", nil]];
}
NSData *propertyData = [NSJSONSerialization dataWithJSONObject:properties
                                                       options:NSJSONWritingPrettyPrinted
                                                         error:nil];
NSString *propertiesString = [[NSString alloc] initWithData:propertyData
                                                   encoding:NSUTF8StringEncoding];
NSData *mediaData = [NSJSONSerialization dataWithJSONObject:media
                                                    options:NSJSONWritingPrettyPrinted
                                                      error:nil];
NSString *mediaString = [[NSString alloc] initWithData:mediaData
                                              encoding:NSUTF8StringEncoding];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:myAppID, @"app_id",
                                                                  link, @"link",
                                                                  name, @"name",
                                                                  caption, @"caption",
                                                                  propertiesString, @"properties",
                                                                  mediaString, @"media",
                                                                  description, @"description", nil];
[FBRequestConnection startWithGraphPath:@"me/feed"
                             parameters:params
                             HTTPMethod:@"POST"
                      completionHandler:completionHandler];

これは 1 つの画像のみを投稿しますが、5 つすべてを投稿する必要があります。

編集: Janrain Engage Library を介して 1 回の投稿で 5 つの画像を既に投稿しているので、実行可能です!

4

5 に答える 5

0

Facebookはしばらく前に投稿で複数の写真を廃止しました。あなたがそれを行うことができたとき、人々は複数の写真を並べて構成された「バナー」を作成していました。これで、壁の支柱に1枚の写真だけが表示されます。

さらに写真を投稿することはできますが、デフォルトでは確実ではありません。Facebookは「もっと」リンクを追加しますが、それも廃止された可能性があります。

出典:2枚の写真でウォールポストを公開する方法

そのため、複数の画像をポットに与えることはできません。 より良い方法は、5つの画像を1つの画像に結合することです。

于 2012-09-25T13:33:05.407 に答える
0

https://developers.facebook.com/docs/opengraph/usergeneratedphotos/で説明されているように、OpenGraphアクションで複数の画像をアップロードできます。

そこからのサンプルコード:

https://graph.facebook.com/me/nyccookbook:cook?
  recipe=http://www.yourdomain.com/pizza.html&
  image[0][url]=http://www.yourdomain.com/images/my_camera_pizza_pic.jpg&
  image[0][user_generated]=true&
  image[1][url]=http://www.yourdomain.com/images/my_camera_soda_pic_2.jpg&
  image[1][user_generated]=true&
  access_token=YOUR_ACCESS_TOKEN
于 2012-09-27T01:21:38.633 に答える
0

わかりました、新しいアイデアです。5 つすべてをループで送信しますが、ステータス テキストと他のすべては同じにします。Facebookがそれらを1つの投稿に結合することは可能ではありませんか?

于 2012-09-20T08:38:47.013 に答える
0

バッチリクエストがあなたが探しているものだと思います。

このリンクから:

アプリケーションが一度に大量のデータにアクセスする必要がある場合、または一度に複数のオブジェクトを変更する必要がある場合は、複数の個別の HTTP リクエストを作成するよりも、クエリをバッチ処理する方が効率的であることがよくあります。

これを可能にするために、Graph API はバッチ処理をサポートしています。バッチ処理を使用すると、単一の HTTP 要求で複数の操作の命令を渡すことができます。関連する操作間の依存関係を指定することもできます (以下のセクションで説明します)。Facebook は、独立した各操作を並行して処理し、依存する操作を順番に処理します。すべての操作が完了すると、統合された応答が返され、HTTP 接続が閉じられます。

...

バイナリデータのアップロード

バイナリ データは、バッチ API 要求のマルチパート/MIME 部分の一部として指定できます。バッチ グラフ API を使用すると、バッチ呼び出しの一部として複数のバイナリ アイテムをアップロードできます。これを行うには、すべてのバイナリ アイテムを multipart/mime 添付ファイルとしてリクエストに追加する必要があり、各操作で「attached_files」プロパティを使用してそのバイナリ アイテムを参照する必要があります。「attached_files」プロパティは、その値に添付ファイル名のカンマ区切りのリストを取ることができます。

iOS SDK を使用してバッチ リクエストを作成するためのチュートリアルへのリンクを次に示します。

于 2012-09-27T05:54:11.647 に答える