在上次為了更新Firebase專案的FCM發送ServerKey登入方式
照著Google提供的語言,使用Node.js取得隨機BearerKey來推播發送~
這次推敲程式碼邏輯~成功改成用Asp.net(VB)方式了~
不用繞圈去自架Node.Js伺服器,再去取得BearerKey丟回老舊主機來發送了。
上次文章連結:
https://ithelp.ithome.com.tw/articles/10318143
這幾天想著是否Google搜尋一下~
看有人是否有Asp.net的BearerKey設定方式
雖然我知道現在都是C#的天下~早就沒有VB身影了~
無奈專案就是VB開發的~
去改成C#也不合理(老闆才不給你時間改呢)
於是在Google找到符合我需求的網站
關鍵字:ASP bearer FCM
網站:Push Notification From C# .Net to Android Using FCM HTTP V1
https://www.c-sharpcorner.com/article/push-notification-from-c-sharp-net-to-android-using-fcm-http-v1/
於是我照這網站文章看了一遍
重點在於這個dll檔案
於是我到專門下載dll檔案的網站,將檔案放到 Bin 資料夾
網站:DLLme
https://www.dllme.com/
下載主要這三個檔案
Google.Apis.Auth.dll
Google.Apis.Core.dll
Newtonsoft.Json.dll
另外要注意下載dll的版本編號,
Google.Apis.Auth 指定為 1.60
Google.Apis.Core 指定為 1.60
Newtonsoft.Json 指定為 13.0
因為之前測試的時候~下載版本比較高的時候~
出現命名空間的成員不存在(因為新版dll已經移除)
所以下載舊版dll才是正確的@_@"
最後去將他的C#程式碼,轉換成VB格式的程式碼
有變更一些程式碼,將網頁開頭引入的參考,直接改為不省略開頭使用。
如下
<%@ Page Title="" Language="VB" validateRequest="false" %>
<%
Dim FileName As String = System.Web.Hosting.HostingEnvironment.MapPath("~/FCM_Key.json")
Dim scopes As String = "https://www.googleapis.com/auth/firebase.messaging"
Dim BearerToken As String = ""
Using stream As Object = New IO.FileStream(FileName, IO.FileMode.Open, IO.FileAccess.Read)
BearerToken = Google.Apis.Auth.OAuth2.GoogleCredential.FromStream(stream) _
.CreateScoped(scopes) _
.UnderlyingCredential _
.GetAccessTokenForRequestAsync() _
.Result()
End Using
Response.Write(BearerToken)
%>
將程式碼丟到伺服器執行後,成功從Google回傳Bearer Key
最後將原先的內部IP的自架主機,改成跟網站同主機的子網域網站存取Bearer Key完成!
終於解決VB舊語言的程式碼不支援問題了@_@a