Отправить SMS-сообщение с купленным номером Twilio

Я приобрел номер, но я не могу отправить SMS-сообщение с неверным запросом 400. Используя пробный номер, я могу отправить SMS ниже, я использую AFNewtorking для API или есть какой-либо другой метод вызова api для покупки действительного номера

NSString *kTwilioSID = @" ";
    NSString *kTwilioSecret = @" ";
    NSString *kFromNumber = @"+ ";

    NSString* nospacestring =[phno stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSString *kToNumber = nospacestring;
    NSString *kSMSMessage = @"Smart Child Info is a precautionary app designed to fight child abduction, exploitation, and maltreatment.";

    // Build request
    NSString *urlString = [NSString stringWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages/", kTwilioSID, kTwilioSecret, kTwilioSID];

    NSString *Loginurl = urlString;


    NSDictionary*
    dic=@{@"From":kFromNumber,@"To":kToNumber,@"Body":kSMSMessage};

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/plain",@"application/xml",nil];

    [manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    [manager POST:Loginurl parameters:dic progress:nil success:^(NSURLSessionTask *task, id responseObject) {


        NSLog(@"Response from server  :  %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);

        NSData * data = (NSData *)responseObject;
        NSString* xmlData = [NSString stringWithCString:[data bytes] encoding:NSISOLatin1StringEncoding];
        NSLog(@"%@",xmlData);

        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Success" message:@"Message has been sent" preferredStyle:UIAlertControllerStyleAlert];

        UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
        [alertController addAction:ok];

        [self presentViewController:alertController animated:YES completion:nil];

    }
          failure:^(NSURLSessionTask *operation, NSError *error)

     {

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

         UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Failed" message:@"Message not sent" preferredStyle:UIAlertControllerStyleAlert];

         UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
         [alertController addAction:ok];

         [self presentViewController:alertController animated:YES completion:nil];

     }];

person salman siddiqui    schedule 21.02.2017    source источник


Ответы (1)


Проповедник разработчиков Twilio здесь.

Во-первых, мы не рекомендуем вам выполнять вызовы API напрямую к Twilio API из вашего приложения iOS. Если кто-то распакует ваше приложение, он сможет получить доступ к SID вашей учетной записи и токену аутентификации, а затем использовать вашу учетную запись для чего угодно.

Во-вторых, вы используете устаревшую конечную точку SMS/Messages. Вместо этого вам следует использовать более современную Messages конечную точку.

Я рекомендую вам взглянуть на это сообщение в блоге на отправка SMS-сообщений с помощью Twilio на iOS. В нем рассказывается, как настроить сервер для отправки ваших сообщений и последующего взаимодействия с этим сервером.

person philnash    schedule 21.02.2017