Bot

EXCEL VBA からチャットボットに送信

みかわ屋

2024.12.16既読 47

私はJSONについて全くの無知のため、筋違いの質問をしていたらお許しください。

AI相談室:https://ask-ai.worksmobile.com/jp/developer
で、[VBAでメッセージを送る方法]で聞いてみました。下記の回答がでました。

Function GetAccessToken() As String
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    Dim url As String
    url = "https://auth.worksmobile.com/oauth2/v2.0/token"
    
    Dim params As String
    params = "grant_type=client_credentials" & _
             "&client_id=YOUR_CLIENT_ID" & _
             "&client_secret=YOUR_CLIENT_SECRET" & _
             "&scope=bot.message"
    
    http.Open "POST", url, False
    http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    http.send params
    
    Dim response As String
    response = http.responseText
    
    ' JSONパースしてアクセストークンを取得
    Dim json As Object
    Set json = JsonConverter.ParseJson(response)
    GetAccessToken = json("access_token")
End Function
Sub SendMessage()
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    Dim url As String
    url = "https://www.worksapis.com/v1.0/bot/message/send"
    
    Dim token As String
    token = GetAccessToken()
    
    Dim message As String
    message = "{""content"": ""Hello, Works!""}"
    
    http.Open "POST", url, False
    http.setRequestHeader "Content-Type", "application/json"
    http.setRequestHeader "Authorization", "Bearer " & token
    http.send message
    
    If http.Status = 200 Then
        MsgBox "Message sent successfully!"
    Else
        MsgBox "Failed to send message: " & http.responseText
    End If
End Sub
JSONCONVERTERが必要と出ていたので、GITHUBより頂戴し
VBAの参照設定でMicrosoft Scripting Runtimeにチェックを入れ
client_idとclient_secretを入力し流してみました。

上記で出てくるgetAccessToken()のparamsに記載されている
grant_type=client_credentialsでエラーが出てしまいます。[Grant type is not supported.]
わからないなりに調べて
grant_type=authorization_code としてみましたがエラーでした。[Access token or refresh token or authorization code is not valid.]
grant_type=authorization_code&code=としてこの後にbotIDやBot_secretなどをつけてみましたが、
[Failed to get access token from request.","error":"unauthorized_client"]
エラー内容的には最後のものが一番マシには見えるのですが、他にcodeにいれるものも見当たらず行き詰まりました。
おわかりになられる方いらっしゃいましたらご教示お願いいたします。

コメント1

  • 업데이트 된 답글입니다.

    みかわ屋 投稿者

    自己解決できました。
    そもそもとして、AI相談室に出てきたものをやればできると信じていたところから間違いでした。
    長期使用するのは問題あるのかもしれませんが、
    LINEWORKSでメッセージ送信用のBotを作り、
    GASを利用し、LINEWORKSライブラリを取り込み、LINEWORKSにメッセージを送れるWEBアプリを作る。
    VBAからメッセージ内容をWEBアプリに送信し、WEBアプリからメッセージを送らせる。
    こういった全体の段取りがわからない私のような初心者には手を出しずらい部分ですね。
    いい勉強になりました。

    2024.12.21

    0
前の投稿phpからbotでメッセージが送れません。
次の投稿スプレッドで作成したIDとパスを個別トークに送信(100名)
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。