只是搞乱Github API和oauth。我已经到了从GH那里收到access_token
的地步。
我到目前为止:
url := "https://github.com/login/oauth/access_token"
params := map[string]string{"client_id": client_id, "client_secret": client_secret, "code": code}
data, _ := json.Marshal(params)
resp, _ := http.Post(url, "application/json", bytes.NewBuffer(data))
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
但我现在想访问响应部分。根据GH文档,他们是在形式
access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&scope=user%2Cgist&token_type=bearer
我是否需要解析字符串或者是否有更好的"方式是什么?
答案 0 :(得分:3)
这是一个URL查询字符串。您可以使用url
包来解析它并获取url.Values
(这只是一张地图)。
resp := "access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&scope=user%2Cgist&token_type=bearer"
values, err := url.ParseQuery(resp)
if err != nil {
panic(err)
}
fmt.Println("access_token:", values["access_token"])
fmt.Println("token_type:", values["token_type"])