2016-12-08 1 views
1

La documentation suggère d'utiliser le script ci-dessous, mais je n'arrive pas à comprendre pourquoi je reçois un message d'erreur.ERREUR envoi d'un SMS avec Amazon SNS et Python et boto3

Ce que im en utilisant jusqu'à présent:

sns = boto3.client('sns', region_name='eu-west-1') 
sns.publish(
    PhoneNumber='+5521981554856', 
    Message='hi there', 
    MessageAttributes={ 
         'AWS.SNS.SMS.SenderID': { 
                'DataType': 'String', 
                'StringValue': 'MySenderID' 
}  
} 
) 

ne quelqu'un sait pourquoi im obtenir le msg d'erreur ci-dessous? Pourquoi "PhoneNumber" présente-t-il un tel comportement gênant?

+0

Cela devrait fonctionner correctement. sns.publish (PhoneNumber = '+ 5521981554856', Message = 'salut là-bas') – Patrick

Répondre

0

La documentation indique que PhoneNumber est pris en charge. Malheureusement, il s'agit simplement de copier-coller à partir de la documentation officielle AWS.

Si vous regardez le code source, vous verrez que Boto3 attend soit TargetArn ou TopicArn: https://github.com/boto/boto3/blob/master/boto3/data/sns/2010-03-31/resources-1.json

"Publish": { 
     "request": { 
     "operation": "Publish", 
     "params": [ 
      { "target": "TopicArn", "source": "identifier", "name": "Arn" } 
     ] 
     } 
    }, 

...

"Publish": { 
      "request": { 
      "operation": "Publish", 
      "params": [ 
       { "target": "TargetArn", "source": "identifier", "name": "Arn" } 
      ] 
      } 
     }, 

Je suppose que vous devez patcher Boto3 vous-même ou de déposer un problème sur GitHub.

0

j'ai pu le faire fonctionner avec le code suivant:

import boto3 

sns = boto3.client('sns') 
smsattrs = { 
    'AWS.SNS.SMS.SenderID': { 'DataType': 'String', 'StringValue': 'TestSender' }, 
    'AWS.SNS.SMS.SMSType': { 'DataType': 'String', 'StringValue': 'Transactional'} 
} 
sns.publish(
    PhoneNumber = '+35840xxxxxxx', 
    Message = 'Hello world!', 
    MessageAttributes = smsattrs 
) 

Ce qui ressemble à peu près la même chose que ce que vous avez essayé. Que se passe-t-il lorsque vous supprimez les attributs de message?