/go-instagram

Go library for accessing Instagram REST and Search APIs

Primary LanguageGoBSD 2-Clause "Simplified" LicenseBSD-2-Clause

go-instagram

go-instagram is Go library for accessing Instagram REST and Search APIs.

Documentation: http://godoc.org/github.com/gedex/go-instagram/instagram

Build Status: Build Status Build Status Coverage Status

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

License

This library is distributed under the BSD-style license found in the LICENSE file.