Awesome
go-instagram
go-instagram is Go library for accessing Instagram REST and Search APIs.
Documentation: http://godoc.org/github.com/gedex/go-instagram/instagram
Basic Usage
Access different parts of the Instagram API using the various services on a Instagram Client:
// You can optionally pass your own HTTP's client, otherwise pass it with nil.
client := instagram.NewClient(nil)
You can then optionally set ClientID, ClientSecret and AccessToken:
client.ClientID = "8f2c0ad697ea4094beb2b1753b7cde9c"
With client object set, you can communicate with Instagram endpoints:
// Gets the most recent media published by a user with id "3"
media, next, err := client.Users.RecentMedia("3", nil)
Set optional parameters for an API method by passing an Parameters object.
// Gets user's feed.
opt := &instagram.Parameters{Count: 3}
media, next, err := client.Users.RecentMedia("3", opt)
Please see examples/example.go for a complete example.
Data Retrieval
The methods which return slice in first return value will return three values (data, pagination, and error). Here's an example of retrieving popular media:
media, next, err := client.Media.Popular()
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
}
for _, m := range media {
fmt.Printf("ID: %v, Type: %v\n", m.ID, m.Type)
}
if next.NextURL != "" {
fmt.Println("Next URL", next.NextURL)
}
If a single type is returned in first return value, then only two values returned. Here's an example of retrieving user's information:
user, err := client.Users.Get("3")
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
}
fmt.Println("Username", user.Username)
Credits
- go-github in which this library mimics the structure. LICENSE for go-github is included in go-github-LICENSE.md
- python-instagram
- Instagram endpoints docs
License
This library is distributed under the BSD-style license found in the LICENSE file.