• Yasuki Sakurai
  • NEWBIE
  • 10 Points
  • Member since 2014

  • Chatter
    Feed
  • 0
    Best Answers
  • 1
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 3
    Replies
お世話になっております。

iOSのモバイルアプリケーション内で、入力された文字列をChatterへ投稿する、という動作を実装しようとしています。

HTTP POSTにはJSONを使い、リクエストを送信するコードを記述し、実行したところ、HTTPステータスコードとして400が返ってきました。
どのようなコードを記述すれば、上記のような動作を実現できるのでしょうか?

記述したコードは以下の通りです。

    NSString *header = [NSString stringWithFormat:@"OAuth %@", access_token];
    NSString *chatterURL = @"https://xxx.salesforce.com/services/data/v31.0/chatter/feed-elements";
   
    NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:chatterURL]
                                                    cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                                    timeoutInterval:60];

    [req setHTTPMethod:@"POST"];
    [req addValue:header forHTTPHeaderField:@"Authorization"]; //アクセストークンをヘッダに追加

    NSString *boundary = @"------------------a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq";
    [req addValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
    [req addValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Accept"];
   
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"json\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: application/json; charset=UTF-8\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
   
    // request JSON
    NSString *bodyString = [NSString stringWithFormat:@""
                            "{ \"body\":\r\n"
                            "   {\r\n"
                            "      \"messageSegments\" : [\r\n"
                            "      {\r\n"
                            "         \"type\" : \"Text\", \r\n"
                            "         \"text\" : \"%@\"\r\n"
                            "      }\r\n"
                            "      ]\r\n"
                            "   }, \r\n"
                            "\"feedElementType\" : \"FeedItem\", \r\n"
                            "\"subjectId\" : \"xxxxxxxx\" \r\n"
                            "}", inputText];
   
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", bodyString] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [req setHTTPBody:body];

    NSError *error = nil;
    NSURLResponse *response = nil;
   
    //リクエストの送信
    [NSURLConnection sendSynchronousRequest:req
                                     returningResponse:&response
                                     error:&error];

上記コードを実行すると、NSURLConnectionの引数responseにHTTPステータスコードの400、
errorはnilが返ってきます。
お世話になっております。

iOSのモバイルアプリケーション内で、入力された文字列をChatterへ投稿する、という動作を実装しようとしています。

HTTP POSTにはJSONを使い、リクエストを送信するコードを記述し、実行したところ、HTTPステータスコードとして400が返ってきました。
どのようなコードを記述すれば、上記のような動作を実現できるのでしょうか?

記述したコードは以下の通りです。

    NSString *header = [NSString stringWithFormat:@"OAuth %@", access_token];
    NSString *chatterURL = @"https://xxx.salesforce.com/services/data/v31.0/chatter/feed-elements";
   
    NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:chatterURL]
                                                    cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                                    timeoutInterval:60];

    [req setHTTPMethod:@"POST"];
    [req addValue:header forHTTPHeaderField:@"Authorization"]; //アクセストークンをヘッダに追加

    NSString *boundary = @"------------------a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq";
    [req addValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
    [req addValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Accept"];
   
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"json\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: application/json; charset=UTF-8\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
   
    // request JSON
    NSString *bodyString = [NSString stringWithFormat:@""
                            "{ \"body\":\r\n"
                            "   {\r\n"
                            "      \"messageSegments\" : [\r\n"
                            "      {\r\n"
                            "         \"type\" : \"Text\", \r\n"
                            "         \"text\" : \"%@\"\r\n"
                            "      }\r\n"
                            "      ]\r\n"
                            "   }, \r\n"
                            "\"feedElementType\" : \"FeedItem\", \r\n"
                            "\"subjectId\" : \"xxxxxxxx\" \r\n"
                            "}", inputText];
   
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", bodyString] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [req setHTTPBody:body];

    NSError *error = nil;
    NSURLResponse *response = nil;
   
    //リクエストの送信
    [NSURLConnection sendSynchronousRequest:req
                                     returningResponse:&response
                                     error:&error];

上記コードを実行すると、NSURLConnectionの引数responseにHTTPステータスコードの400、
errorはnilが返ってきます。
お世話になっております。

iOSのモバイルアプリケーション内で、入力された文字列をChatterへ投稿する、という動作を実装しようとしています。

HTTP POSTにはJSONを使い、リクエストを送信するコードを記述し、実行したところ、HTTPステータスコードとして400が返ってきました。
どのようなコードを記述すれば、上記のような動作を実現できるのでしょうか?

記述したコードは以下の通りです。

    NSString *header = [NSString stringWithFormat:@"OAuth %@", access_token];
    NSString *chatterURL = @"https://xxx.salesforce.com/services/data/v31.0/chatter/feed-elements";
   
    NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:chatterURL]
                                                    cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                                    timeoutInterval:60];

    [req setHTTPMethod:@"POST"];
    [req addValue:header forHTTPHeaderField:@"Authorization"]; //アクセストークンをヘッダに追加

    NSString *boundary = @"------------------a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq";
    [req addValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
    [req addValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Accept"];
   
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"json\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: application/json; charset=UTF-8\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
   
    // request JSON
    NSString *bodyString = [NSString stringWithFormat:@""
                            "{ \"body\":\r\n"
                            "   {\r\n"
                            "      \"messageSegments\" : [\r\n"
                            "      {\r\n"
                            "         \"type\" : \"Text\", \r\n"
                            "         \"text\" : \"%@\"\r\n"
                            "      }\r\n"
                            "      ]\r\n"
                            "   }, \r\n"
                            "\"feedElementType\" : \"FeedItem\", \r\n"
                            "\"subjectId\" : \"xxxxxxxx\" \r\n"
                            "}", inputText];
   
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", bodyString] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [req setHTTPBody:body];

    NSError *error = nil;
    NSURLResponse *response = nil;
   
    //リクエストの送信
    [NSURLConnection sendSynchronousRequest:req
                                     returningResponse:&response
                                     error:&error];

上記コードを実行すると、NSURLConnectionの引数responseにHTTPステータスコードの400、
errorはnilが返ってきます。