Can't send FirebaseNotifications with Arduino Ethernet anymore.
I can't send firebase push. I get error from google server.
Error Log:
********************* PROGRAM STARTING ****************
AppStart
Connected to network. My ip address: 192.168.1.107
Connected to server
HTTP/1.1 403 Forbidden
Content-Type: text/html; charset=UTF-8
Date: Thu, 05 Dec 2019 13:29:49 GMT
Expires: Thu, 05 Dec 2019 13:29:49 GMT
This is working code but for some reason it's not working anymore.
Do I need to use https ?
Can't find any topic for this problem.
Can someone help me to solve this problem?
Thanks for considering my request.
I can't send firebase push. I get error from google server.
Error Log:
********************* PROGRAM STARTING ****************
AppStart
Connected to network. My ip address: 192.168.1.107
Connected to server
HTTP/1.1 403 Forbidden
Content-Type: text/html; charset=UTF-8
Date: Thu, 05 Dec 2019 13:29:49 GMT
Expires: Thu, 05 Dec 2019 13:29:49 GMT
This is working code but for some reason it's not working anymore.
Do I need to use https ?
Can't find any topic for this problem.
Can someone help me to solve this problem?
Thanks for considering my request.
B4X:
' 2019-08-11
#Region Project Attributes
#AutoFlushLogs: True
#CheckArrayBounds: True
#StackBufferSize: 250
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'Public variables can be accessed from all modules.
Private Sent As Boolean = False
Public BtnState As Boolean = True
'Public SendPushIntervall As Timer
Public Serial1 As Serial
Private MacAddress() As Byte = Array As Byte(0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED)
Private btn As Pin
Private eth As Ethernet
Private astream As AsyncStreams
Private socket As EthernetSocket
Private storedMessage(30) As Byte 'title allocate 30 bytes for the message
Private storedMessage1(30) As Byte 'body allocate 30 bytes for the message1
Private bc As ByteConverter
Private const API_KEY As String = "AAAAmUeURI"
Private eol() As Byte = Array As Byte(13, 10)
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
If eth.InitializeDHCP(MacAddress) = False Then 'change as needed
Log("Error connecting to network.")
Return
Else
Log("Connected to network. My ip address: ", eth.LocalIp)
End If
btn.Initialize(btn.A0, btn.MODE_INPUT_PULLUP)
btn.AddListener("btn_StateChanged")
End Sub
Sub Btn_StateChanged (State As Boolean)
'Log("Btn_StateChanged")
If State = False And Sent = False Then
BtnState = False
If Sent = False Then
'LarmDelay.Enabled = True
SendMessage("Willo Maskin problem Kyltork !!", "FEL! Kyltorken L A R M A R !!!")
'Log("Larm ingång fördröjning aktiverad!")
Sent = True
'Log("Larm 1 minuts fördröjning aktiverad!")
End If
End If
If State = True Then
BtnState = True
If Sent = True Then
Sent = False
Log("Larm ingång fördröjning avstängd!")
End If
End If
End Sub
Sub SendMessage(str() As Byte, str1() As Byte)
bc.ArrayCopy(str, storedMessage)
bc.ArrayCopy(str1, storedMessage1)
Connect(0)
End Sub
Sub Connect(unused As Byte)
If socket.ConnectHost("fcm.googleapis.com", 80) = False Then
Log("trying to connect again")
CallSubPlus("Connect", 1000, 0)
Return
End If
Log("Connected to server")
astream.Initialize(socket.Stream, "Astream_NewData", "Astream_Error")
For i = 1 To 2
'astream.Write("POST /fcm/send HTTP/1.1").Write(eol)
astream.Write("POST /fcm/send HTTP/1.1").Write(eol)
astream.Write("Host: fcm.googleapis.com").Write(eol)
astream.Write("Authorization: key=").Write(API_KEY).Write(eol)
astream.Write("Content-Type: application/json").Write(eol)
If i = 1 Then SendAndroid Else SendIOS
Next
End Sub
Sub SendAndroid
astream.Write("Connection: keep-alive").Write(eol) '<--- keep-alive
'astream.Write("Content-Length: ").Write(NumberFormat(56 + storedMessage.Length, 0, 0)).Write(eol)
astream.Write("Content-Length: ").Write(NumberFormat(56 + storedMessage.Length + storedMessage1.Length, 0, 0) ).Write(eol)
astream.Write(eol)
'astream.Write("{""data"":{""title"":""").Write(storedMessage).Write(""",""body"":""""},""to"":""\/topics\/general""}")
astream.Write("{""data"":{""title"":""").Write(storedMessage).Write(""",""body"":""").Write(storedMessage1).Write("""},""to"":""\/topics\/general""}")
End Sub
Sub SendIOS
astream.Write("Connection: close").Write(eol) '<--- close
astream.Write("Content-Length: ").Write(NumberFormat(136 + 2 * storedMessage.Length, 0, 0)).Write(eol)
astream.Write(eol)
astream.Write("{""notification"":{""sound"":""default"",""4"":""") _
.Write(storedMessage) _
.Write(""",""body"":""B4R""},""data"":{""title"":""").Write(storedMessage).Write(""",""body"":""B4R""}") _
.Write(",""to"":""\/topics\/ios_general"",""priority"":10}")
End Sub
Sub Astream_NewData (Buffer() As Byte)
Log(Buffer)
End Sub
Sub Astream_Error
Log("Disconnected")
End Sub
code