Oauth1.0aではてなブログAPIにアクセスする

created byTakuya Ueda. Licensed under the Creative Commons 3.0 Attributions license.

こんにちはnasustです。 Oauth1.0aではてなブログAPIにアクセスするサンプルです。

このライブラリを使用してアクセスしています。

package main

import (
	"fmt"
	"io/ioutil"
	"log"

	"github.com/garyburd/go-oauth/oauth"
)

func main() {
	oauthClient := &oauth.Client{
		Credentials: oauth.Credentials{
			Token:  "XXXXXXXXXXXXXX",
			Secret: "XXXXXXXXXXXXXX",
		},
		TemporaryCredentialRequestURI: "https://www.hatena.com/oauth/initiate",
		ResourceOwnerAuthorizationURI: "https://www.hatena.com/oauth/authorize",
		TokenRequestURI:               "https://www.hatena.com/oauth/token",
	}

	accessToken := oauth.Credentials{
		Token:  "XXXXXXXXXXXXXXX",
		Secret: "XXXXXXXXXXXXXXX",
	}

	response, err := oauthClient.Get(nil, &accessToken, "https://blog.hatena.ne.jp/nasust/nasust.hatenablog.com/atom", nil)

	if err != nil {
		log.Fatal("Get Err: ", err)
		panic(-1)
	}

	fmt.Println("Status: ", response.Status)

	bodyData, err := ioutil.ReadAll(response.Body)

	if err != nil {
		log.Fatal("Read Err:", err)
		panic(-1)
	}

	bodyStr := string(bodyData)

	fmt.Println(bodyStr)
}
go

結果:

Status:  200 OK
<?xml version="1.0" encoding="utf-8"?>
<service xmlns="http://www.w3.org/2007/app">
  <workspace>
    <atom:title xmlns:atom="http://www.w3.org/2005/Atom">nasust blog</atom:title>
    <collection href="https://blog.hatena.ne.jp/nasust/nasust.hatenablog.com/atom/entry">
      <atom:title xmlns:atom="http://www.w3.org/2005/Atom">nasust blog - 記事一覧</atom:title>
      <accept>application/atom+xml;type=entry</accept>
    </collection>
  </workspace>
</service>
bash
prevnext