2016-10-11 57 views
1

我正在嘗試使用AWS開發工具包在應用程序上創建端點,以便我可以發送推送通知。當我在AWS控制檯上手動輸入詳細信息時,會發送推送通知,但我試圖從應用內註冊設備,以便新用戶可以註冊。AWS開發工具包swift com.amazonaws.AWSSNSErrorDomain代碼= 0「(null)」

按照http://docs.aws.amazon.com/mobile/sdkforios/developerguide/setup.html上的步驟操作,我在AppDelegate中創建了應用程序的憑據,並在另一個類中使用這些憑據。

我使用嘗試訪問AWS SNS的代碼是:

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

我一直在使用的通知註冊時由該裝置產生(設備令牌上的AWS輸入時,這個值測試工作SNS控制檯)。 user_id也被測試過,不爲空。

我不斷收到的錯誤是

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

不是真的知道什麼是問題的原因是,但如果有人可以幫助我將不勝感激。謝謝

回答

0

這很可能是授權錯誤。您是否正確設置了默認的服務配置?

當您使用AWSSNS.defaultSNS()時,它會從默認配置對象中加載配置。用於默認配置的憑證提供程序應該承擔有權從客戶端調用createPlatformEndpoint的角色。

如果假定的角色具有足夠的權限,則可以從IAM控制檯驗證它。

謝謝, 羅漢

相關問題