解析access_token的Github响应

时间:2015-10-06 20:28:44

标签: github go

只是搞乱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

我是否需要解析字符串或者是否有更好的"方式是什么?

1 个答案:

答案 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"])

Play link