2017-01-20 2 views
1

Что я сделал:

Я создал простой IOS родное приложение, которое не имеет ничего, кроме OneSignal кодов initializaion. Я установил приложение на свои 2 устройства, устройство A и устройство B. Оба устройства подписываются на мою консоль приложений OneSignal. Когда я отправляю уведомление от OneSignal Web Console, 2 устройства могут оба получать уведомление.OneSignal IOS SDK отправить уведомление сбой код 400

Что я хочу сделать:

При нажатии на кнопку на устройстве, устройство А посылает уведомление на устройство B.

чем проблема:

Я следовал OneSignal IOS SDK документ и создал следующую функцию https://documentation.onesignal.com/docs/ios-native-sdk#section-sending-notifications

func onButtonClick() { 
    OneSignal.postNotification(
     [ 
      "contents": ["en": "Test Message"], 
      "include_player_ids": ["c00bb8a6-79da-419b-9999-e919831a5223"] // id of device B 
     ], 
     onSuccess: {(result) in print("success") }, 
     onFailure: {(error) in print("error : \(error)") } 
    ) 
} 

однако, когда я нажал на торец на, ошибка появляется в консоли Xcode отладки:

2017-01-20 11:15:52.702852 my.bundle.id[2263:1201122] ERROR: Create notification failed 
error : Optional(Error Domain=OneSignalError Code=400 "(null)" UserInfo={returned={ 
    errors =  (
     "Please include a case-sensitive header of Authorization: Basic <YOUR-REST-API-KEY-HERE> with a valid REST API key." 
    ); 
    reference =  (
     "https://documentation.onesignal.com/docs/accounts-and-keys#section-keys-ids" 
    ); 
}}) 

я был смущен, потому что в соответствии с OneSignal Справочный документ, отправить уведомление с «include_player_ids» Не требует API Auth Key.

https://documentation.onesignal.com/reference#create-notification

И это также говорит: НИКОГДА не используйте «REST API ключ» в коде клиента, он предназначен для использования в вашей системе или только сервер.

Так что же означает эта ошибка? А что мне делать?

Я даже скопировал и запустил этот код «работа без проблем» с this discussion, но та же ошибка авторизации все еще появляется. Что я делаю не так?

ответ

2

Ответ

Просто обновление SDK и проблема будет.

Это была ошибка в OneSignal-iOS-SDK 2.3.1, эта ошибка была исправлена ​​в 2.3.2.

См. Их Github Release Notes.

Как избежать такого рода проблем

Всегда запускать pod repo update перед тем pod install, чтобы гарантировать, что стручок установить последнюю версию фреймворка.

Спасибо, Кевин, Джейсон и Джош из One Signal Conversations, чтобы помочь мне решить эту проблему.