2016-10-11 30 views
1

プッシュ通知を送信できるように、AWS SDKを使用してアプリケーションにエンドポイントを作成しようとしています。プッシュ通知は、AWSコンソールで手動で詳細を入力するときに表示されますが、新しいユーザーにサインアップできるように、アプリ内からデバイスを登録しようとしています。AWS SDK swift com.amazonaws.AWSSNSErrorDomainコード= 0 "(null)"

http://docs.aws.amazon.com/mobile/sdkforios/developerguide/setup.htmlの手順に従って、私はAppDelegateでアプリケーションの資格情報を作成し、これらの資格情報を別のクラスで使用しました。

私が試してみて、AWS SNSへのアクセスに使用しているコードは次のとおりです。私はAWS上で入力したときに、この値は作品の通知を登録するときに(デバイスによって生成されたデバイストークンを使用してテストしている

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 
     }) 
    } 

SNSコンソール)。 user_idもテストされており、nullではありません。

私は入れませんエラーは、問題の原因があるが、誰も私を助けることができれば、それは非常に高く評価されるだろう本当にわから

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

されていません。ありがとう

答えて

0

これはおそらく承認エラーです。デフォルトのサービス設定を正しく設定していますか?

AWSSNS.defaultSNS()を使用すると、デフォルト構成オブジェクトから構成が読み込まれます。既定の構成に使用されている資格情報プロバイダは、クライアントからcreatePlatformEndpointを呼び出す権限を持つロールを想定する必要があります。

想定される役割に十分な権限がある場合は、IAMコンソールから確認できます。

ありがとう、 ローハン