2017-01-17 28 views
0

我遵循Huddle Api指令獲取訪問令牌。我使用PowerShell來發布它的方法如下:需要得到所需的http post

$body = { '@grant_type' = 'authorization_code'; client_id = 'xxxxx'; 
      redirect_uri = 'myAppServer.com'; code = '123abcdef' } 

Invoke-WebRequest -Uri "login.huddle.com" -ContentType "application/x-www-form-urlencoded" -Method Post 

這工作,我得到的「200 OK」的迴應,也顯示:

POST /token HTTP/1.1 
Host: login.huddle.net 
Content-Type: application/x-www-form-urlencoded 

grant_type=authorization_code&client_id=s6BhdRkqt&redirect_uri=MyAppServer.com/receiveAuthCode&code=i1WsRn1uB1 

PowerShell的,我現在用的就是命令訪問令牌的激活。我將如何檢索訪問令牌號碼。例如,我需要的輸出,如他們在指令中提到的那樣:

HTTP/1.1 200 OK 
Content-Type: application/json 
Cache-Control: no-store 

{ 
"access_token":"S1AV32hkKG", 
"expires_in":300, 
"refresh_token":"8xLOxBtZp8" 
} 

我認爲它有一些ContentType。所以我嘗試了「application/Json」,但事實並非如此。有什麼建議麼?

回答

1

您使用了錯誤的cmdlet集的響應。既然你提到獲取StatusCode,Content,RawContent等的值,它告訴我們你正在使用Invoke-WebRequest。這個cmdlet真棒......但不適用於使用通常爲REST格式並使用JSON的API。 IWR可以處理該請求,但您必須深入研究$Response.Content並從JSON轉換。

而不是Invoke-WebRequest,請嘗試使用Invoke-RestMethod。這很可能是您獲取返回的AccessCode,但是作爲JSON格式的屬性。 Invoke-RestMethod將本地解析並將JSON轉換爲PowerShell對象。你可以把它分爲Invoke-WebRequest,它應該只是工作

Invoke-RestMethod -Uri "login.huddle.com" -ContentType "application/x-www-form-urlencoded" -Method Post -body $body 
+0

感謝您的幫助。對此,我真的非常感激。它的迴應並不是我認爲的價值,也可能是它的名字。我已經聯繫了Huddle。希望能從他們那裏得到答案。再次感謝 – Zz11

+0

我打算查看API文檔,我認爲我看到了問題。我稍後會在今天稍後更新 – FoxDeploy

+0

您是否已經註冊了API令牌? (必須發送電子郵件給他們,如下所列:https://github.com/Huddle/huddle-apis/wiki/OAuth%20Integration) – FoxDeploy

0

如果使用調用-RestMethod可以進行調用

$response = Invoke-RestMethod -Uri "login.huddle.com" -ContentType "application/x-www-form-urlencoded" -Method Post"

時則$response.access_token$response.expires_in$response.refresh_token

+0

對不起,延遲迴復。作爲迴應,我沒有得到這些領域。只有可用的字段是:狀態代碼,內容,RawContent,表單,標題,圖像,表單,鏈接ParsedHtml。 – Zz11

+0

有沒有其他辦法,我可以檢索所需的信息? – Zz11