我正在尝试使用TeamForge API。这是我第一次接受网络请求,所以我确信我遗漏了一些明显的东西。
甚至开始,我意识到我需要请求一个oauth令牌。根据文档,我必须执行以下命令:
# Base URL of TeamForge site.
site_url="https://teamforge.example.com"
# TeamForge authentication credentials.
username="foo"
password="bar"
# Requested scope (all)
scope="urn:ctf:services:ctf urn:ctf:services:svn urn:ctf:services:gerrit urn:ctf:services:soap60"
curl -d "grant_type=password&client_id=api-client&scope=$scope&username=$username&password=$password" $site_url/oauth/auth/token
似乎相当简单。知道curl
是Invoke-WebRequest
的别名,我试图在PowerShell中运行以下内容:
$site="https://my.teamforge.site"
$user="myuser"
$pass="mypass"
$scope="urn:ctf:services:ctf"
curl "grant_type=password&client_id=api-client&scope=$scope&username=$user&password=$pass" -Uri $site/oauth/auth/token
我得到的是一个错误:
Invoke-WebRequest:找不到接受参数的位置参数 ' grant_type =密码& client_id = api-client& scope = urn:ctf:services:ctf& username = 其余部分由于明显原因而被修改
我认为这意味着我捏造了语法。我不知道从哪里开始使用此appart并将其插入Invoke-WebRequest
命令。就像我说的,这是我第一次尝试这个。到目前为止,我对答案的搜索没有帮助。我想我在问错误的问题。
如何解构此curl
命令,以便将其转换为可在PowerShell中使用的内容?