首页 > 解决方案 > 如何在 VBA 中传递 API 密钥以获取和发布请求?

问题描述

我正在使用https://developer.companieshouse.gov.uk/api/docs/访问 API 我有我的 API 密钥,但是,我不确定如何从 VBA 传递它。到目前为止,我在下面尝试过

AuthKey = [Key received]

With CreateObject("Microsoft.XMLHTTP")
        .Open "GET", strUrl, False, authKey
        .SetRequestHeader "Content-Type", "application/json"
        .SetRequestHeader "Accept", "application/json"
        .SetRequestHeader "Authorization", "Basic " & AuthKey
        .Send
        response = .ResponseText
    End With

当我从他们的测试页面https://developer.companieshouse.gov.uk/document/docs/document/id/content/fetchDocument.html尝试时,它运行良好,当我转到授权密钥不同的开发工具时,我想我我缺少一些编码。有人可以帮忙吗

谢谢

标签: vbaapi

解决方案


基本身份验证要求用户名和密码一起进行 base 64 编码。您需要传递的 AuthKey 本质上是:

def unencoded_auth = "[username]:[authkey]"
def encoded_auth = *call-to-base64-encode-value*(unencoded_auth)

然后你会更换

"Basic " & AuthKey

"Basic " & encoded_auth

我将参考这篇文章来了解如何实现 base64 编码。


推荐阅读