1

iOSアプリでSalesforceライブエージェントレストAPIを使用して、チャットをリクエストしようとしましたが、常に400リクエストで失敗し、有効なChasitorInitではありません

NSDictionary *parameters =@{     @"SessionId"          :self.sessionId,
                                 @"OrganizationId"     :ORG_ID,
                                 @"deploymentId"       :DEPLOYEMENT_ID,
                                 @"buttonId"           :BUTTON_ID,
                                 @"userAgent"          :USER_AGENT,
                                 @"language"           :LANG,
                                 @"screenResolution"   :SCREEN_RES,
                                 @"visitorName"        :@"Test Visitor",
                                 @"prechatDetails"     :@[],
                                 @"prechatEntities"    :@[],
                                 @"receiveQueueUpdates":@"true",
                                 @"isPost"             :@"true"
                             };

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
manager.requestSerializer = serializer;

[manager.requestSerializer setValue:self.sessionKey forHTTPHeaderField:X_LIVEAGENT_SESSION_KEY];
[manager.requestSerializer setValue:@"null" forHTTPHeaderField:X_LIVEAGENT_AFFINITY];
[manager.requestSerializer setValue:@"1" forHTTPHeaderField:X_LIVEAGENT_SEQUENCE];
[manager.requestSerializer setValue:API_V forHTTPHeaderField:X_LIVEAGENT_API_VERSION];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:ChasitorInit_path parameters:parameters progress:nil
      success:^(NSURLSessionDataTask *task, id responseObject) {
          NSError* error;
          NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseObject
                                                               options:kNilOptions
                                                                 error:&error];
      } failure:^(NSURLSessionDataTask *task, NSError *error) {

          NSLog(@"Error: %@", error);
      }];

私はAfnetworking v3 ios8を使用していますリクエストボディは

{
"sessionId": "8f1cfb18-fbd1-4487-90d-e98c0a84e165",
"organizationId": "00D58000000OwMB",
"deploymentId": "57258000000L1mj",
"buttonId": "57358000000L24F",

"userAgent": "",
"language": "en-US",
"screenResolution": "1900x1080",
"visitorName": "Test Visitor",
"prechatDetails": [],
"prechatEntities": [],
"receiveQueueUpdates": true,
"isPost": true

}

私は何を間違っていますか?訂正してください!!

4

2 に答える 2

1

アプリで同じエラーが発生しました。リクエストとレスポンスのシリアライザーを削除することで解決します。マネージャーのみをインスタンス化し、パラメーターを指定して post メソッドを呼び出します。

reqManager = [AFHTTPRequestOperationManager manager];
[reqManager POST:URLString parameters:parameters progress:nil
      success:^(NSURLSessionDataTask *task, id responseObject) {

      } failure:^(NSURLSessionDataTask *task, NSError *error) {

          NSLog(@"Error: %@", error);
      }];
于 2017-06-29T14:13:50.617 に答える