本件はBizRobo! Basic固有の内容ではなく、REST Web Serviceを使用した一般的な話となりますが確認できている範囲で、外部からロボットを実行する際に指定するUser NameとPasswordの指定方法について、参考として以下に紹介します。
以下にExcelマクロからロボットをRESTを使用して呼び出す際の設定例を記載させていただきますので、以下の通りMCへの認証情報をリクエストヘッダに設定のうえお客様環境に合わせてRESTを送信ください。
'接続するURLのベース部分を指定
Private Const TARGET1_URL As String = "http://localhost:50080/rest/run/run_from_excel/robot_name"
Public Function CreateHttpObject() As Object
Dim objweb As Object
'各種名称でHTTPオブジェクトの生成を試みる
Err.Clear
Set objweb = CreateObject("MSXML2.ServerXMLHTTP.6.0")
If Err.Number = 0 Then
Set CreateHttpObject = objweb
Exit Function
End If
Err.Clear
Set objweb = CreateObject("MSXML2.ServerXMLHTTP")
If Err.Number = 0 Then
Set CreateHttpObject = objweb
Exit Function
End If
Err.Clear
Set objweb = CreateObject("MSXML2.XMLHTTP")
If Err.Number = 0 Then
Set CreateHttpObject = objweb
Exit Function
End If
Set CreateHttpObject = Nothing
End Function
Public Function PostData(ByRef p_data As Variant, ByVal p_mode As Integer) As String
Dim objweb As Object
Dim strURL As String
'XMLHTTPオブジェクトを生成
Set objweb = CreateHttpObject()
'オブジェクトの生成に失敗していれば処理終了
If objweb Is Nothing Then
PostData = ""
Exit Function
End If
strURL = TARGET1_URL
Call objweb.Open("POST", strURL, False)
'-- Basic 認証
Call objweb.setRequestHeader("Authorization", "Basic エンコードした認証文字列")
'-- ヘッダ
Call objweb.setRequestHeader("Content-Type", "application/xml; charset=utf-8")
Call objweb.setRequestHeader("Accept", "application/xml; charset=utf-8")
Call objweb.Send(p_data)
PostData = objweb.responseText
Set objweb = Nothing
End Function
なお、下記外部サイトではユーザ名:admin パスワード:aaa の場合、上記Call objweb.setRequestHeaderには(“Authorization”, “Basic YWRtaW46YWFh”)を指定する必要があると見受けられます。
また、BEARER認証の場合は下記外部サイトでは”Authorization: Bearer トークン”の記載形式が正しいと見受けられます。
<参考外部サイト>
basic認証の挙動
【php】ベーシック認証のかかっているWebページの内容を取得する
Authorization Bearer ヘッダを用いた認証 API の実装
Base64エンコード
Base64デコード