2016-10-11 1 views
1

J'essaie d'utiliser AWS SDK pour créer un point de terminaison sur une application afin que je puisse envoyer des notifications push. Les notifications push s'affichent lorsque je saisis manuellement les détails sur la console AWS, mais j'essaie d'enregistrer l'appareil à l'intérieur de l'application pour que les nouveaux utilisateurs puissent s'y inscrire. Après les étapes sur http://docs.aws.amazon.com/mobile/sdkforios/developerguide/setup.html, j'ai créé les informations d'identification pour l'application dans AppDelegate et utiliser ces informations d'identification dans une autre classe.AWS SDK swift com.amazonaws.AWSSNSErrorDomain Code = 0 "(null)"

Le code que je utilise pour essayer d'accéder à AWS SNS est:

func subscribeEndpoint(json: JSON) 
    { 
     let sns = AWSSNS.defaultSNS() 

     let request  = AWSSNSCreatePlatformEndpointInput() 

     let user_id  = json["id"].string! 
     request.token = "XXXXX" 
     request.customUserData = user_id 

     print("token : \(token) user : \(user_id)") 

     request.platformApplicationArn = "XXXX"   

     sns.createPlatformEndpoint(request).continueWithBlock({ (task: AWSTask!) -> AnyObject! in 
      if task.error != nil { 
       print("Error dis: \(task.error!)") 
      } else { 
       let createEndpointResponse = task.result as! AWSSNSCreateEndpointResponse 
       print("endpointArn: \(createEndpointResponse.endpointArn)") 
      } 

      return nil 
     }) 
    } 

Je l'ai testé à l'aide du jeton de dispositif généré par le dispositif lors de l'enregistrement pour les notifications (cette valeur fonctionne lors de l'entrée sur l'AWS Console SNS). L'id_utilisateur a également été testé et n'est pas nul.

L'erreur que je continue à obtenir est

Error dis: Error Domain=com.amazonaws.AWSSNSErrorDomain Code=0 "(null)" 

Pas vraiment sûr de ce que la cause du problème, mais si quelqu'un pouvait me aider, il serait grandement apprécié. Merci

Répondre

0

Il s'agit probablement d'une erreur d'autorisation. Définissez-vous correctement la configuration de service par défaut?

Lorsque vous utilisez AWSSNS.defaultSNS(), il charge la configuration à partir de l'objet de configuration par défaut. Le fournisseur d'informations d'identification utilisé pour la configuration par défaut doit assumer un rôle qui a les autorisations pour appeler createPlatformEndpoint à partir du client.

Vous pouvez le vérifier à partir de la console IAM si le rôle supposé dispose d'autorisations suffisantes.

Merci, Rohan