2017-01-20 3 views
1

Was ich getan habe:

ich eine einfache nativen iOS App erstellt haben, die nichts anderes als OneSignal initializaion Codes hat. Ich habe meine App auf meinen 2 Geräten, Gerät A und Gerät B installiert. Beide Geräte sind bei meiner OneSignal App-Konsole angemeldet. Wenn ich eine Benachrichtigung von OneSignal Web Console aus sende, können die beiden Geräte die Benachrichtigung empfangen.OneSignal iOS SDK Benachrichtigung senden nicht-Code 400

Was ich tun möchte:

Wenn ich auf eine Taste auf dem Gerät A klicken, Gerät A wird eine Benachrichtigung an Gerät B.

senden Was ist das Problem:

ich gefolgt OneSignal iOS SDK Dokument und erstellt die folgende Funktion 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)") } 
    ) 
} 

jedoch, wenn ich den Hintern geklickt auf, zeigt ein Fehler in der xCode Debug-Konsole auf:

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

Ich war verwirrt, weil nach dem OneSignal Referenzdokument, Erfordern API Auth Key nicht Meldung mit „include_player_ids“ senden.

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

Und er sagt auch: NIEMALS 'REST-API-Schlüssel' in Client-Code verwenden, ist es nur für die Verwendung auf Ihrem System oder Server vorgesehen.

Was bedeutet dieser Fehler? Und was soll ich machen?

Ich habe sogar kopiert und führen Sie diese "Arbeit ohne Probleme" -Code von this discussion, aber der gleiche Autorisierungsfehler immer noch angezeigt. Was mache ich falsch?

Antwort

2

Die Antwort

aktualisieren Sie einfach das SDK und das Problem verschwunden sein.

Dies war ein Fehler in OneSignal-iOS-SDK 2.3.1, dieser Fehler wurde in 2.3.2 behoben.

Bitte beachten Sie ihre Github Release Notes.

Wie diese Art von Problemen führen

immer pod repo update vor pod install zu vermeiden, um sicherzustellen, dass die Hülse die neueste Version des Frameworks installieren.

Danke Kevin, Jason und Josh von One Signal Conversations, um mir zu helfen, dieses Problem zu lösen.

Verwandte Themen