76 lines
2.3 KiB
Go
76 lines
2.3 KiB
Go
/*
|
|
Package twitter provides a Client for the Twitter API.
|
|
|
|
|
|
The twitter package provides a Client for accessing the Twitter API. Here are
|
|
some example requests.
|
|
|
|
// Twitter client
|
|
client := twitter.NewClient(httpClient)
|
|
// Home Timeline
|
|
tweets, resp, err := client.Timelines.HomeTimeline(&HomeTimelineParams{})
|
|
// Send a Tweet
|
|
tweet, resp, err := client.Statuses.Update("just setting up my twttr", nil)
|
|
// Status Show
|
|
tweet, resp, err := client.Statuses.Show(585613041028431872, nil)
|
|
// User Show
|
|
params := &twitter.UserShowParams{ScreenName: "dghubble"}
|
|
user, resp, err := client.Users.Show(params)
|
|
// Followers
|
|
followers, resp, err := client.Followers.List(&FollowerListParams{})
|
|
|
|
Required parameters are passed as positional arguments. Optional parameters
|
|
are passed in a typed params struct (or pass nil).
|
|
|
|
Authentication
|
|
|
|
By design, the Twitter Client accepts any http.Client so user auth (OAuth1) or
|
|
application auth (OAuth2) requests can be made by using the appropriate
|
|
authenticated client. Use the https://github.com/dghubble/oauth1 and
|
|
https://github.com/golang/oauth2 packages to obtain an http.Client which
|
|
transparently authorizes requests.
|
|
|
|
For example, make requests as a consumer application on behalf of a user who
|
|
has granted access, with OAuth1.
|
|
|
|
// OAuth1
|
|
import (
|
|
"github.com/dghubble/go-twitter/twitter"
|
|
"github.com/dghubble/oauth1"
|
|
)
|
|
|
|
config := oauth1.NewConfig("consumerKey", "consumerSecret")
|
|
token := oauth1.NewToken("accessToken", "accessSecret")
|
|
// http.Client will automatically authorize Requests
|
|
httpClient := config.Client(oauth1.NoContext, token)
|
|
|
|
// twitter client
|
|
client := twitter.NewClient(httpClient)
|
|
|
|
If no user auth context is needed, make requests as your application with
|
|
application auth.
|
|
|
|
// OAuth2
|
|
import (
|
|
"github.com/dghubble/go-twitter/twitter"
|
|
"golang.org/x/oauth2"
|
|
"golang.org/x/oauth2/clientcredentials"
|
|
)
|
|
|
|
// oauth2 configures a client that uses app credentials to keep a fresh token
|
|
config := &clientcredentials.Config{
|
|
ClientID: flags.consumerKey,
|
|
ClientSecret: flags.consumerSecret,
|
|
TokenURL: "https://api.twitter.com/oauth2/token",
|
|
}
|
|
// http.Client will automatically authorize Requests
|
|
httpClient := config.Client(oauth2.NoContext)
|
|
|
|
// Twitter client
|
|
client := twitter.NewClient(httpClient)
|
|
|
|
To implement Login with Twitter, see https://github.com/dghubble/gologin.
|
|
|
|
*/
|
|
package twitter
|