Пиша код на VB.NET, за да изпратя известие до емулатора на Android. Мога успешно да изпратя тестово съобщение от контрола на firebase. Не успя обаче, когато се опитах да изпратя съобщение чрез VB.NET код в моята локална машина и получих грешка „Отдалеченият сървър върна грешка: (401) Неупълномощен“.
Опитах се да разгледам следната връзка: FCM (Firebase Cloud Messaging ) Push Notification с Asp.Net и следвайки инструкциите, но все още не работи.
Ето моят код:
Imports System.Net
Imports Newtonsoft.Json
Public Class Notification
Public Sub SendNotification(ByVal deviceIDList As List(Of String), ByVal title As String, ByVal bodyMsg As String)
Dim fcmPath As String = "https://fcm.googleapis.com/fcm/send"
Dim serverKey As String = "AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoCAeI"
Dim senderID As String = "35xxxxxxx37"
Dim request As HttpWebRequest = CType(HttpWebRequest.Create(fcmPath), HttpWebRequest)
With request
.Method = "POST"
.ContentType = "application/json"
.Headers.Add(String.Format("Authorization: key={0}", serverKey))
.Headers.Add(String.Format("Sender: id={0}", senderID))
End With
Using streamWriter = New StreamWriter(request.GetRequestStream())
Dim webObject As New WebRequestFcmData
With webObject
.registration_ids = deviceIDList
.notification.title = title
.notification.body = bodyMsg
.notification.content_available = True
.notification.sound = "default"
.notification.priority = "high"
End With
Dim body = JsonConvert.SerializeObject(webObject)
With streamWriter
.Write(body)
.Flush()
.Close()
End With
End Using
Dim httpResponse = CType(request.GetResponse(), HttpWebResponse)
Using streamReader As New StreamReader(httpResponse.GetResponseStream)
Dim result = streamReader.ReadToEnd
End Using
End Sub
End Class
Public Class WebRequestFcmData
Public Property registration_ids As List(Of String)
Public Property notification As New NotificationData
End Class
Public Class NotificationData
Public Property body As String
Public Property content_available As Boolean
Public Property priority As String
Public Property title As String
Public Property sound As String
End Class
Грешката възникна в реда:
Dim httpResponse = CType(request.GetResponse(), HttpWebResponse)
Ето ключа на сървъра и идентификатора на изпращача, които използвам:
Актуализирано: Опитах да изпратя уеб заявка от приложението Postman и то също даде същата грешка (401: Неупълномощено), както е показано на фигурата по-долу: