Documentation ¶
Overview ¶
Package anaconda provides structs and functions for accessing version 1.1 of the Twitter API.
Successful API queries return native Go structs that can be used immediately, with no need for type assertions.
Authentication ¶
If you already have the access token (and secret) for your user (Twitter provides this for your own account on the developer portal), creating the client is simple:
anaconda.SetConsumerKey("your-consumer-key") anaconda.SetConsumerSecret("your-consumer-secret") api := anaconda.NewTwitterApi("your-access-token", "your-access-token-secret")
Queries ¶
Executing queries on an authenticated TwitterApi struct is simple.
searchResult, _ := api.GetSearch("golang", nil) for _ , tweet := range searchResult.Statuses { fmt.Print(tweet.Text) }
Certain endpoints allow separate optional parameter; if desired, these can be passed as the final parameter.
v := url.Values{} v.Set("count", "30") result, err := api.GetSearch("golang", v)
Endpoints ¶
Anaconda implements most of the endpoints defined in the Twitter API documentation: https://dev.twitter.com/docs/api/1.1. For clarity, in most cases, the function name is simply the name of the HTTP method and the endpoint (e.g., the endpoint `GET /friendships/incoming` is provided by the function `GetFriendshipsIncoming`).
In a few cases, a shortened form has been chosen to make life easier (for example, retweeting is simply the function `Retweet`)
More detailed information about the behavior of each particular endpoint can be found at the official Twitter API documentation.
Index ¶
- Constants
- func NewHTTP420ErrBackoff() backoff.Interface
- func NewHTTPErrBackoff() backoff.Interface
- func NewTCPIPErrBackoff() backoff.Interface
- func SetConsumerKey(consumer_key string)
- func SetConsumerSecret(consumer_secret string)
- type AddUserToListResponse
- type ApiError
- type BaseResource
- type ChunkedMedia
- type Configuration
- type Contributor
- type Coordinates
- type Cursor
- type DirectMessage
- type DirectMessageDeletionNotice
- type DisconnectMessage
- type Entities
- type EntityMedia
- type Event
- type EventFollow
- type EventList
- type EventTweet
- type ExtendedTweet
- type FollowersIdsPage
- type FollowersPage
- type FriendsIdsCursor
- type FriendsIdsPage
- type FriendsList
- type FriendsPage
- type Friendship
- type GeoSearchResult
- type Image
- type LimitNotice
- type List
- type ListResponse
- type Location
- type LocationDeletionNotice
- type Logger
- type Media
- type MediaSize
- type MediaSizes
- type OEmbed
- type Place
- type RateLimitContext
- type RateLimitStatusResponse
- type Relationship
- type RelationshipResponse
- type SearchMetadata
- type SearchResponse
- type Source
- type StallWarning
- type StatusDeletionNotice
- type StatusWithheldNotice
- type Stream
- type Target
- type TooManyFollow
- type Trend
- type TrendLocation
- type TrendResponse
- type Tweet
- type TwitterApi
- func (a TwitterApi) AddMultipleUsersToList(screenNames []string, listID int64, v url.Values) (list List, err error)
- func (a TwitterApi) AddUserToList(screenName string, listID int64, v url.Values) (users []User, err error)
- func (c *TwitterApi) AuthorizationURL(callback string) (string, *oauth.Credentials, error)
- func (a TwitterApi) Block(v url.Values) (user User, err error)
- func (a TwitterApi) BlockUser(screenName string, v url.Values) (user User, err error)
- func (a TwitterApi) BlockUserId(id int64, v url.Values) (user User, err error)
- func (c *TwitterApi) Close()
- func (a TwitterApi) CreateList(name, description string, v url.Values) (list List, err error)
- func (a TwitterApi) DeleteActivityWebhooks(v url.Values, webhookID string) (u interface{}, err error)
- func (a TwitterApi) DeleteDirectMessage(id int64, includeEntities bool) (message DirectMessage, err error)
- func (a TwitterApi) DeleteTweet(id int64, trimUser bool) (tweet Tweet, err error)
- func (a TwitterApi) DeleteWHSubscription(v url.Values, webhookID string) (u interface{}, err error)
- func (c *TwitterApi) DisableThrottling()
- func (c *TwitterApi) EnableThrottling(rate time.Duration, bufferSize int64)
- func (a TwitterApi) Favorite(id int64) (rt Tweet, err error)
- func (a TwitterApi) FollowUser(screenName string) (user User, err error)
- func (a TwitterApi) FollowUserId(userId int64, v url.Values) (user User, err error)
- func (a TwitterApi) GeoSearch(v url.Values) (c GeoSearchResult, err error)
- func (a TwitterApi) GetActivityWebhooks(v url.Values) (u []WebHookResp, err error)
- func (a TwitterApi) GetBlocksIds(v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetBlocksList(v url.Values) (c UserCursor, err error)
- func (a TwitterApi) GetConfiguration(v url.Values) (conf Configuration, err error)
- func (c *TwitterApi) GetCredentials(tempCred *oauth.Credentials, verifier string) (*oauth.Credentials, url.Values, error)
- func (c *TwitterApi) GetDelay() time.Duration
- func (a TwitterApi) GetDirectMessages(v url.Values) (messages []DirectMessage, err error)
- func (a TwitterApi) GetDirectMessagesSent(v url.Values) (messages []DirectMessage, err error)
- func (a TwitterApi) GetDirectMessagesShow(v url.Values) (message DirectMessage, err error)
- func (a TwitterApi) GetFavorites(v url.Values) (favorites []Tweet, err error)
- func (a TwitterApi) GetFollowersIds(v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetFollowersIdsAll(v url.Values) (result chan FollowersIdsPage)
- func (a TwitterApi) GetFollowersList(v url.Values) (c UserCursor, err error)
- func (a TwitterApi) GetFollowersListAll(v url.Values) (result chan FollowersPage)
- func (a TwitterApi) GetFollowersUser(id int64, v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetFriendsIds(v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetFriendsIdsAll(v url.Values) (result chan FriendsIdsPage)
- func (a TwitterApi) GetFriendsList(v url.Values) (c UserCursor, err error)
- func (a TwitterApi) GetFriendsListAll(v url.Values) (result chan FriendsPage)
- func (a TwitterApi) GetFriendsUser(id int64, v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetFriendshipsIncoming(v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetFriendshipsLookup(v url.Values) (friendships []Friendship, err error)
- func (a TwitterApi) GetFriendshipsNoRetweets() (ids []int64, err error)
- func (a TwitterApi) GetFriendshipsOutgoing(v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetFriendshipsShow(v url.Values) (relationshipResponse RelationshipResponse, err error)
- func (a TwitterApi) GetHomeTimeline(v url.Values) (timeline []Tweet, err error)
- func (a TwitterApi) GetList(listID int64, v url.Values) (list List, err error)
- func (a TwitterApi) GetListTweets(listID int64, includeRTs bool, v url.Values) (tweets []Tweet, err error)
- func (a TwitterApi) GetListTweetsBySlug(slug string, ownerScreenName string, includeRTs bool, v url.Values) (tweets []Tweet, err error)
- func (a TwitterApi) GetListsOwnedBy(userID int64, v url.Values) (lists []List, err error)
- func (a TwitterApi) GetMentionsTimeline(v url.Values) (timeline []Tweet, err error)
- func (a TwitterApi) GetMutedUsersIds(v url.Values) (c Cursor, err error)
- func (a TwitterApi) GetMutedUsersList(v url.Values) (c UserCursor, err error)
- func (a TwitterApi) GetOEmbed(v url.Values) (o OEmbed, err error)
- func (a TwitterApi) GetOEmbedId(id int64, v url.Values) (o OEmbed, err error)
- func (a TwitterApi) GetRateLimits(r []string) (rateLimitStatusResponse RateLimitStatusResponse, err error)
- func (a TwitterApi) GetRetweets(id int64, v url.Values) (tweets []Tweet, err error)
- func (a TwitterApi) GetRetweetsOfMe(v url.Values) (tweets []Tweet, err error)
- func (a TwitterApi) GetSearch(queryString string, v url.Values) (sr SearchResponse, err error)
- func (a TwitterApi) GetSelf(v url.Values) (u User, err error)
- func (a TwitterApi) GetTrendsAvailableLocations(v url.Values) (locations []TrendLocation, err error)
- func (a TwitterApi) GetTrendsByPlace(id int64, v url.Values) (trendResp TrendResponse, err error)
- func (a TwitterApi) GetTrendsClosestLocations(lat float64, long float64, v url.Values) (locations []TrendLocation, err error)
- func (a TwitterApi) GetTweet(id int64, v url.Values) (tweet Tweet, err error)
- func (a TwitterApi) GetTweetsLookupByIds(ids []int64, v url.Values) (tweet []Tweet, err error)
- func (a TwitterApi) GetUserSearch(searchTerm string, v url.Values) (u []User, err error)
- func (a TwitterApi) GetUserTimeline(v url.Values) (timeline []Tweet, err error)
- func (a TwitterApi) GetUsersLookup(usernames string, v url.Values) (u []User, err error)
- func (a TwitterApi) GetUsersLookupByIds(ids []int64, v url.Values) (u []User, err error)
- func (a TwitterApi) GetUsersShow(username string, v url.Values) (u User, err error)
- func (a TwitterApi) GetUsersShowById(id int64, v url.Values) (u User, err error)
- func (a TwitterApi) GetUsersSuggestions(v url.Values) (u []User, err error)
- func (a TwitterApi) GetWHSubscription(v url.Values, webhookID string) (u interface{}, err error)
- func (a TwitterApi) Mute(v url.Values) (user User, err error)
- func (a TwitterApi) MuteUser(screenName string, v url.Values) (user User, err error)
- func (a TwitterApi) MuteUserId(id int64, v url.Values) (user User, err error)
- func (a TwitterApi) PostDMToScreenName(text, screenName string) (message DirectMessage, err error)
- func (a TwitterApi) PostDMToUserId(text string, userId int64) (message DirectMessage, err error)
- func (a TwitterApi) PostTweet(status string, v url.Values) (tweet Tweet, err error)
- func (a TwitterApi) PostUsersReportSpam(username string, v url.Values) (u User, err error)
- func (a TwitterApi) PostUsersReportSpamById(id int64, v url.Values) (u User, err error)
- func (a TwitterApi) PublicStreamFilter(v url.Values) (stream *Stream)
- func (a TwitterApi) PublicStreamFirehose(v url.Values) (stream *Stream)
- func (a TwitterApi) PublicStreamSample(v url.Values) (stream *Stream)
- func (a TwitterApi) PutActivityWebhooks(v url.Values, webhookID string) (u interface{}, err error)
- func (c *TwitterApi) ReturnRateLimitError(b bool)
- func (a TwitterApi) Retweet(id int64, trimUser bool) (rt Tweet, err error)
- func (a TwitterApi) SetActivityWebhooks(v url.Values) (u WebHookResp, err error)
- func (c *TwitterApi) SetBaseUrl(baseUrl string)
- func (c *TwitterApi) SetDelay(t time.Duration)
- func (c *TwitterApi) SetLogger(l Logger)
- func (a TwitterApi) SetWHSubscription(v url.Values, webhookID string) (u interface{}, err error)
- func (a TwitterApi) SiteStream(v url.Values) (stream *Stream)
- func (a TwitterApi) UnRetweet(id int64, trimUser bool) (rt Tweet, err error)
- func (a TwitterApi) Unblock(v url.Values) (user User, err error)
- func (a TwitterApi) UnblockUser(screenName string, v url.Values) (user User, err error)
- func (a TwitterApi) UnblockUserId(id int64, v url.Values) (user User, err error)
- func (a TwitterApi) Unfavorite(id int64) (rt Tweet, err error)
- func (a TwitterApi) UnfollowUser(screenname string) (u User, err error)
- func (a TwitterApi) UnfollowUserId(userId int64) (u User, err error)
- func (a TwitterApi) Unmute(v url.Values) (user User, err error)
- func (a TwitterApi) UnmuteUser(screenName string, v url.Values) (user User, err error)
- func (a TwitterApi) UnmuteUserId(id int64, v url.Values) (user User, err error)
- func (a TwitterApi) UploadMedia(base64String string) (media Media, err error)
- func (a TwitterApi) UploadVideoAppend(mediaIdString string, segmentIndex int, base64String string) error
- func (a TwitterApi) UploadVideoFinalize(mediaIdString string) (videoMedia VideoMedia, err error)
- func (a TwitterApi) UploadVideoInit(totalBytes int, mimeType string) (chunkedMedia ChunkedMedia, err error)
- func (a TwitterApi) UserStream(v url.Values) (stream *Stream)
- func (a TwitterApi) VerifyCredentials() (ok bool, err error)
- type TwitterError
- type TwitterErrorResponse
- type UrlEntity
- type User
- type UserCursor
- type UserWithheldNotice
- type Variant
- type Video
- type VideoInfo
- type VideoMedia
- type WebHookResp
Examples ¶
Constants ¶
const ( //Error code defintions match the Twitter documentation //https://developer.twitter.com/en/docs/basics/response-codes TwitterErrorCouldNotAuthenticate = 32 TwitterErrorDoesNotExist = 34 TwitterErrorAccountSuspended = 64 TwitterErrorApi1Deprecation = 68 //This should never be needed TwitterErrorRateLimitExceeded = 88 TwitterErrorInvalidToken = 89 TwitterErrorOverCapacity = 130 TwitterErrorInternalError = 131 TwitterErrorCouldNotAuthenticateYou = 135 TwitterErrorStatusIsADuplicate = 187 TwitterErrorBadAuthenticationData = 215 TwitterErrorUserMustVerifyLogin = 231 // Undocumented by Twitter, but may be returned instead of 34 TwitterErrorDoesNotExist2 = 144 )
const ( BaseUrlUserStream = "https://userstream.twitter.com/1.1" BaseUrlSiteStream = "https://sitestream.twitter.com/1.1" BaseUrlStream = "https://stream.twitter.com/1.1" )
const ( ClientTimeout = 20 BaseUrlV1 = "https://api.twitter.com/1" BaseUrl = "https://api.twitter.com/1.1" UploadBaseUrl = "https://upload.twitter.com/1.1" )
const DEFAULT_CAPACITY = 5
const DEFAULT_DELAY = 0 * time.Second
Variables ¶
This section is empty.
Functions ¶
func NewHTTP420ErrBackoff ¶
Back off exponentially for HTTP 420 errors.
Start with a 1 minute wait and double each attempt. Note that every HTTP 420 received increases the time you must wait until rate limiting will no longer will be in effect for your account.
func NewHTTPErrBackoff ¶
Back off exponentially for HTTP errors for which reconnecting would be appropriate.
Start with a 5 second wait, doubling each attempt, up to 320 seconds.
func NewTCPIPErrBackoff ¶
Back off linearly for TCP/IP level network errors.
These problems are generally temporary and tend to clear quickly. Increase the delay in reconnects by 250ms each attempt, up to 16 seconds.
func SetConsumerKey ¶
func SetConsumerKey(consumer_key string)
SetConsumerKey will set the application-specific consumer_key used in the initial OAuth process This key is listed on https://dev.twitter.com/apps/YOUR_APP_ID/show
func SetConsumerSecret ¶
func SetConsumerSecret(consumer_secret string)
SetConsumerSecret will set the application-specific secret used in the initial OAuth process This secret is listed on https://dev.twitter.com/apps/YOUR_APP_ID/show
Types ¶
type AddUserToListResponse ¶
type AddUserToListResponse struct {
Users []User `json:"users"`
}
type ApiError ¶
type ApiError struct { StatusCode int Header http.Header Body string Decoded TwitterErrorResponse URL *url.URL }
func NewApiError ¶
func (*ApiError) RateLimitCheck ¶
Check to see if an error is a Rate Limiting error. If so, find the next available window in the header. Use like so:
if aerr, ok := err.(*ApiError); ok { if isRateLimitError, nextWindow := aerr.RateLimitCheck(); isRateLimitError { <-time.After(nextWindow.Sub(time.Now())) } }
type BaseResource ¶
type ChunkedMedia ¶
type Configuration ¶
type Configuration struct { CharactersReservedPerMedia int `json:"characters_reserved_per_media"` MaxMediaPerUpload int `json:"max_media_per_upload"` NonUsernamePaths []string `json:"non_username_paths"` PhotoSizeLimit int `json:"photo_size_limit"` PhotoSizes struct { Thumb photoSize `json:"thumb"` Small photoSize `json:"small"` Medium photoSize `json:"medium"` Large photoSize `json:"large"` } `json:"photo_sizes"` ShortUrlLength int `json:"short_url_length"` ShortUrlLengthHttps int `json:"short_url_length_https"` }
type Contributor ¶
type Contributor struct { Id int64 `json:"id"` IdStr string `json:"id_str"` ScreenName string `json:"screen_name"` }
Could also use User, since the fields match, but only these fields are possible in Contributor
type Coordinates ¶
type DirectMessage ¶
type DirectMessage struct { CreatedAt string `json:"created_at"` Entities Entities `json:"entities"` Id int64 `json:"id"` IdStr string `json:"id_str"` Recipient User `json:"recipient"` RecipientId int64 `json:"recipient_id"` RecipientScreenName string `json:"recipient_screen_name"` Sender User `json:"sender"` SenderId int64 `json:"sender_id"` SenderScreenName string `json:"sender_screen_name"` Text string `json:"text"` }
type DisconnectMessage ¶
type Entities ¶
type Entities struct { Urls []struct { Indices []int `json:"indices"` Url string `json:"url"` Display_url string `json:"display_url"` Expanded_url string `json:"expanded_url"` } `json:"urls"` Indices []int `json:"indices"` Text string `json:"text"` } `json:"hashtags"` Url UrlEntity `json:"url"` User_mentions []struct { Name string `json:"name"` Indices []int `json:"indices"` Screen_name string `json:"screen_name"` Id int64 `json:"id"` Id_str string `json:"id_str"` } `json:"user_mentions"` Media []EntityMedia `json:"media"` }
type EntityMedia ¶
type EntityMedia struct { Id int64 `json:"id"` Id_str string `json:"id_str"` Media_url string `json:"media_url"` Media_url_https string `json:"media_url_https"` Url string `json:"url"` Display_url string `json:"display_url"` Expanded_url string `json:"expanded_url"` Sizes MediaSizes `json:"sizes"` Source_status_id int64 `json:"source_status_id"` Source_status_id_str string `json:"source_status_id_str"` Type string `json:"type"` Indices []int `json:"indices"` VideoInfo VideoInfo `json:"video_info"` ExtAltText string `json:"ext_alt_text"` }
type EventFollow ¶
type EventFollow struct {
Event
}
type EventTweet ¶
type ExtendedTweet ¶
type FollowersIdsPage ¶
FIXME: Might want to consolidate this with FriendsIdsPage and just
have "UserIdsPage".
type FollowersPage ¶
type FriendsIdsCursor ¶
type FriendsIdsPage ¶
type FriendsList ¶
type FriendsList []int64
type FriendsPage ¶
type Friendship ¶
type GeoSearchResult ¶
type GeoSearchResult struct { Result struct { Places []struct { ID string `json:"id"` URL string `json:"url"` PlaceType string `json:"place_type"` Name string `json:"name"` FullName string `json:"full_name"` CountryCode string `json:"country_code"` Country string `json:"country"` ContainedWithin []struct { ID string `json:"id"` URL string `json:"url"` PlaceType string `json:"place_type"` Name string `json:"name"` FullName string `json:"full_name"` CountryCode string `json:"country_code"` Country string `json:"country"` Centroid []float64 `json:"centroid"` BoundingBox struct { Type string `json:"type"` Coordinates [][][]float64 `json:"coordinates"` } `json:"bounding_box"` Attributes struct { } `json:"attributes"` } `json:"contained_within"` Centroid []float64 `json:"centroid"` BoundingBox struct { Type string `json:"type"` Coordinates [][][]float64 `json:"coordinates"` } `json:"bounding_box"` Attributes struct { } `json:"attributes"` } `json:"places"` } `json:"result"` Query struct { URL string `json:"url"` Type string `json:"type"` Params struct { Accuracy float64 `json:"accuracy"` Granularity string `json:"granularity"` Query string `json:"query"` Autocomplete bool `json:"autocomplete"` TrimPlace bool `json:"trim_place"` } `json:"params"` } `json:"query"` }
type LimitNotice ¶
type LimitNotice struct {
Track int64 `json:"track"`
}
type List ¶
type List struct { Slug string `json:"slug"` Name string `json:"name"` URL string `json:"uri"` CreatedAt string `json:"created_at"` Id int64 `json:"id"` SubscriberCount int64 `json:"subscriber_count"` MemberCount int64 `json:"member_count"` Mode string `json:"mode"` FullName string `json:"full_name"` Description string `json:"description"` User User `json:"user"` Following bool `json:"following"` }
type ListResponse ¶
type LocationDeletionNotice ¶
type Logger ¶
type Logger interface { Fatal(args ...interface{}) Fatalf(format string, args ...interface{}) Panic(args ...interface{}) Panicf(format string, args ...interface{}) // Log functions Critical(args ...interface{}) Criticalf(format string, args ...interface{}) Error(args ...interface{}) Errorf(format string, args ...interface{}) Warning(args ...interface{}) Warningf(format string, args ...interface{}) Notice(args ...interface{}) Noticef(format string, args ...interface{}) Info(args ...interface{}) Infof(format string, args ...interface{}) Debug(args ...interface{}) Debugf(format string, args ...interface{}) }
The Logger interface provides optional logging ability for the streaming API. It can also be used to log the rate limiting headers if desired.
var BasicLogger Logger
BasicLogger is the equivalent of using log from the standard library to print to STDERR.
type MediaSizes ¶
type Place ¶
type Place struct { Attributes map[string]string `json:"attributes"` BoundingBox struct { Coordinates [][][]float64 `json:"coordinates"` Type string `json:"type"` } `json:"bounding_box"` ContainedWithin []struct { Attributes map[string]string `json:"attributes"` BoundingBox struct { Coordinates [][][]float64 `json:"coordinates"` Type string `json:"type"` } `json:"bounding_box"` Country string `json:"country"` CountryCode string `json:"country_code"` FullName string `json:"full_name"` ID string `json:"id"` Name string `json:"name"` PlaceType string `json:"place_type"` URL string `json:"url"` } `json:"contained_within"` Country string `json:"country"` CountryCode string `json:"country_code"` FullName string `json:"full_name"` Geometry struct { Coordinates [][][]float64 `json:"coordinates"` Type string `json:"type"` } `json:"geometry"` ID string `json:"id"` Name string `json:"name"` PlaceType string `json:"place_type"` Polylines []string `json:"polylines"` URL string `json:"url"` }
type RateLimitContext ¶
type RateLimitContext struct {
AccessToken string `json:"access_token"`
}
type RateLimitStatusResponse ¶
type RateLimitStatusResponse struct { RateLimitContext RateLimitContext `json:"rate_limit_context"` Resources map[string]map[string]BaseResource `json:"resources"` }
type Relationship ¶
type RelationshipResponse ¶
type RelationshipResponse struct {
Relationship Relationship `json:"relationship"`
}
type SearchMetadata ¶
type SearchMetadata struct { CompletedIn float32 `json:"completed_in"` MaxId int64 `json:"max_id"` MaxIdString string `json:"max_id_str"` Query string `json:"query"` RefreshUrl string `json:"refresh_url"` Count int `json:"count"` SinceId int64 `json:"since_id"` SinceIdString string `json:"since_id_str"` NextResults string `json:"next_results"` }
type SearchResponse ¶
type SearchResponse struct { Statuses []Tweet `json:"statuses"` Metadata SearchMetadata `json:"search_metadata"` }
func (*SearchResponse) GetNext ¶
func (sr *SearchResponse) GetNext(a *TwitterApi) (SearchResponse, error)
type StallWarning ¶
type StatusDeletionNotice ¶
type StatusWithheldNotice ¶
type TooManyFollow ¶
type TrendLocation ¶
type TrendResponse ¶
type Tweet ¶
type Tweet struct { Contributors []int64 `json:"contributors"` Coordinates *Coordinates `json:"coordinates"` CreatedAt string `json:"created_at"` DisplayTextRange []int `json:"display_text_range"` Entities Entities `json:"entities"` ExtendedEntities Entities `json:"extended_entities"` ExtendedTweet ExtendedTweet `json:"extended_tweet"` FavoriteCount int `json:"favorite_count"` Favorited bool `json:"favorited"` FilterLevel string `json:"filter_level"` FullText string `json:"full_text"` HasExtendedProfile bool `json:"has_extended_profile"` Id int64 `json:"id"` IdStr string `json:"id_str"` InReplyToScreenName string `json:"in_reply_to_screen_name"` InReplyToStatusID int64 `json:"in_reply_to_status_id"` InReplyToStatusIdStr string `json:"in_reply_to_status_id_str"` InReplyToUserID int64 `json:"in_reply_to_user_id"` InReplyToUserIdStr string `json:"in_reply_to_user_id_str"` IsTranslationEnabled bool `json:"is_translation_enabled"` Lang string `json:"lang"` Place Place `json:"place"` QuotedStatusID int64 `json:"quoted_status_id"` QuotedStatusIdStr string `json:"quoted_status_id_str"` QuotedStatus *Tweet `json:"quoted_status"` PossiblySensitive bool `json:"possibly_sensitive"` PossiblySensitiveAppealable bool `json:"possibly_sensitive_appealable"` RetweetCount int `json:"retweet_count"` Retweeted bool `json:"retweeted"` RetweetedStatus *Tweet `json:"retweeted_status"` Source string `json:"source"` Scopes map[string]interface{} `json:"scopes"` Text string `json:"text"` User User `json:"user"` WithheldCopyright bool `json:"withheld_copyright"` WithheldInCountries []string `json:"withheld_in_countries"` WithheldScope string `json:"withheld_scope"` }
func (Tweet) CreatedAtTime ¶
CreatedAtTime is a convenience wrapper that returns the Created_at time, parsed as a time.Time struct
func (Tweet) HasCoordinates ¶
HasCoordinates is a helper function to easily determine if a Tweet has coordinates associated with it
func (*Tweet) UnmarshalJSON ¶
type TwitterApi ¶
type TwitterApi struct { Credentials *oauth.Credentials HttpClient *http.Client // Currently used only for the streaming API // and for checking rate-limiting headers // Default logger is silent Log Logger // contains filtered or unexported fields }
func NewTwitterApi ¶
func NewTwitterApi(access_token string, access_token_secret string) *TwitterApi
NewTwitterApi takes an user-specific access token and secret and returns a TwitterApi struct for that user. The TwitterApi struct can be used for accessing any of the endpoints available.
func NewTwitterApiWithCredentials ¶
func NewTwitterApiWithCredentials(access_token string, access_token_secret string, consumer_key string, consumer_secret string) *TwitterApi
NewTwitterApiWithCredentials takes an app-specific consumer key and secret, along with a user-specific access token and secret and returns a TwitterApi struct for that user. The TwitterApi struct can be used for accessing any of the endpoints available.
func (TwitterApi) AddMultipleUsersToList ¶
func (a TwitterApi) AddMultipleUsersToList(screenNames []string, listID int64, v url.Values) (list List, err error)
AddMultipleUsersToList implements /lists/members/create_all.json
func (TwitterApi) AddUserToList ¶
func (a TwitterApi) AddUserToList(screenName string, listID int64, v url.Values) (users []User, err error)
AddUserToList implements /lists/members/create.json
func (*TwitterApi) AuthorizationURL ¶
func (c *TwitterApi) AuthorizationURL(callback string) (string, *oauth.Credentials, error)
AuthorizationURL generates the authorization URL for the first part of the OAuth handshake. Redirect the user to this URL. This assumes that the consumer key has already been set (using SetConsumerKey or NewTwitterApiWithCredentials).
func (TwitterApi) BlockUserId ¶
func (TwitterApi) CreateList ¶
CreateList implements /lists/create.json
func (TwitterApi) DeleteActivityWebhooks ¶
func (a TwitterApi) DeleteActivityWebhooks(v url.Values, webhookID string) (u interface{}, err error)
DeleteActivityWebhooks Removes the webhook from the provided application’s configuration. https://dev.twitter.com/webhooks/reference/del/account_activity/webhooks
func (TwitterApi) DeleteDirectMessage ¶
func (a TwitterApi) DeleteDirectMessage(id int64, includeEntities bool) (message DirectMessage, err error)
DeleteDirectMessage will destroy (delete) the direct message with the specified ID. https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/delete-message
func (TwitterApi) DeleteTweet ¶
func (a TwitterApi) DeleteTweet(id int64, trimUser bool) (tweet Tweet, err error)
DeleteTweet will destroy (delete) the status (tweet) with the specified ID, assuming that the authenticated user is the author of the status (tweet). If trimUser is set to true, only the user's Id will be provided in the user object returned.
func (TwitterApi) DeleteWHSubscription ¶
func (a TwitterApi) DeleteWHSubscription(v url.Values, webhookID string) (u interface{}, err error)
DeleteWHSubscription Deactivates subscription for the provided user context and app. After deactivation, all DM events for the requesting user will no longer be sent to the webhook URL.. https://dev.twitter.com/webhooks/reference/del/account_activity/webhooks
func (*TwitterApi) DisableThrottling ¶
func (c *TwitterApi) DisableThrottling()
Disable query throttling
func (*TwitterApi) EnableThrottling ¶
func (c *TwitterApi) EnableThrottling(rate time.Duration, bufferSize int64)
Enable query throttling using the tokenbucket algorithm
func (TwitterApi) Favorite ¶
func (a TwitterApi) Favorite(id int64) (rt Tweet, err error)
Favorite will favorite the status (tweet) with the specified ID. https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-favorites-create
func (TwitterApi) FollowUser ¶
func (a TwitterApi) FollowUser(screenName string) (user User, err error)
FollowUserId follows the user with the specified screenname (username). This implements the /friendships/create endpoint, though the function name uses the terminology 'follow' as this is most consistent with colloquial Twitter terminology.
func (TwitterApi) FollowUserId ¶
FollowUserId follows the user with the specified userId. This implements the /friendships/create endpoint, though the function name uses the terminology 'follow' as this is most consistent with colloquial Twitter terminology.
func (TwitterApi) GeoSearch ¶
func (a TwitterApi) GeoSearch(v url.Values) (c GeoSearchResult, err error)
func (TwitterApi) GetActivityWebhooks ¶
func (a TwitterApi) GetActivityWebhooks(v url.Values) (u []WebHookResp, err error)
GetActivityWebhooks represents the twitter account_activity webhook Returns all URLs and their statuses for the given app. Currently, only one webhook URL can be registered to an application. https://dev.twitter.com/webhooks/reference/get/account_activity/webhooks
func (TwitterApi) GetBlocksIds ¶
func (a TwitterApi) GetBlocksIds(v url.Values) (c Cursor, err error)
func (TwitterApi) GetBlocksList ¶
func (a TwitterApi) GetBlocksList(v url.Values) (c UserCursor, err error)
func (TwitterApi) GetConfiguration ¶
func (a TwitterApi) GetConfiguration(v url.Values) (conf Configuration, err error)
func (*TwitterApi) GetCredentials ¶
func (c *TwitterApi) GetCredentials(tempCred *oauth.Credentials, verifier string) (*oauth.Credentials, url.Values, error)
GetCredentials gets the access token using the verifier received with the callback URL and the credentials in the first part of the handshake. GetCredentials implements the third part of the OAuth handshake. The returned url.Values holds the access_token, the access_token_secret, the user_id and the screen_name.
func (*TwitterApi) GetDelay ¶
func (c *TwitterApi) GetDelay() time.Duration
func (TwitterApi) GetDirectMessages ¶
func (a TwitterApi) GetDirectMessages(v url.Values) (messages []DirectMessage, err error)
func (TwitterApi) GetDirectMessagesSent ¶
func (a TwitterApi) GetDirectMessagesSent(v url.Values) (messages []DirectMessage, err error)
func (TwitterApi) GetDirectMessagesShow ¶
func (a TwitterApi) GetDirectMessagesShow(v url.Values) (message DirectMessage, err error)
func (TwitterApi) GetFavorites ¶
func (a TwitterApi) GetFavorites(v url.Values) (favorites []Tweet, err error)
func (TwitterApi) GetFollowersIds ¶
func (a TwitterApi) GetFollowersIds(v url.Values) (c Cursor, err error)
func (TwitterApi) GetFollowersIdsAll ¶
func (a TwitterApi) GetFollowersIdsAll(v url.Values) (result chan FollowersIdsPage)
Like GetFollowersIds, but returns a channel instead of a cursor and pre-fetches the remaining results This channel is closed once all values have been fetched
func (TwitterApi) GetFollowersList ¶
func (a TwitterApi) GetFollowersList(v url.Values) (c UserCursor, err error)
func (TwitterApi) GetFollowersListAll ¶
func (a TwitterApi) GetFollowersListAll(v url.Values) (result chan FollowersPage)
Like GetFollowersList, but returns a channel instead of a cursor and pre-fetches the remaining results This channel is closed once all values have been fetched
Example ¶
Fetch a list of all followers without any need for managing cursors (Each page is automatically fetched when the previous one is read)
pages := api.GetFollowersListAll(nil) for page := range pages { //Print the current page of followers fmt.Println(page.Followers) }
Output:
func (TwitterApi) GetFollowersUser ¶
func (TwitterApi) GetFriendsIds ¶
func (a TwitterApi) GetFriendsIds(v url.Values) (c Cursor, err error)
func (TwitterApi) GetFriendsIdsAll ¶
func (a TwitterApi) GetFriendsIdsAll(v url.Values) (result chan FriendsIdsPage)
Like GetFriendsIds, but returns a channel instead of a cursor and pre-fetches the remaining results This channel is closed once all values have been fetched
func (TwitterApi) GetFriendsList ¶
func (a TwitterApi) GetFriendsList(v url.Values) (c UserCursor, err error)
func (TwitterApi) GetFriendsListAll ¶
func (a TwitterApi) GetFriendsListAll(v url.Values) (result chan FriendsPage)
Like GetFriendsList, but returns a channel instead of a cursor and pre-fetches the remaining results This channel is closed once all values have been fetched
func (TwitterApi) GetFriendsUser ¶
func (TwitterApi) GetFriendshipsIncoming ¶
func (a TwitterApi) GetFriendshipsIncoming(v url.Values) (c Cursor, err error)
func (TwitterApi) GetFriendshipsLookup ¶
func (a TwitterApi) GetFriendshipsLookup(v url.Values) (friendships []Friendship, err error)
func (TwitterApi) GetFriendshipsNoRetweets ¶
func (a TwitterApi) GetFriendshipsNoRetweets() (ids []int64, err error)
GetFriendshipsNoRetweets returns a collection of user_ids that the currently authenticated user does not want to receive retweets from. It does not currently support the stringify_ids parameter.
func (TwitterApi) GetFriendshipsOutgoing ¶
func (a TwitterApi) GetFriendshipsOutgoing(v url.Values) (c Cursor, err error)
func (TwitterApi) GetFriendshipsShow ¶
func (a TwitterApi) GetFriendshipsShow(v url.Values) (relationshipResponse RelationshipResponse, err error)
func (TwitterApi) GetHomeTimeline ¶
func (a TwitterApi) GetHomeTimeline(v url.Values) (timeline []Tweet, err error)
GetHomeTimeline returns the most recent tweets and retweets posted by the user and the users that they follow. https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-home_timeline By default, include_entities is set to "true"
func (TwitterApi) GetListTweets ¶
func (TwitterApi) GetListTweetsBySlug ¶
func (TwitterApi) GetListsOwnedBy ¶
GetListsOwnedBy implements /lists/ownerships.json screen_name, count, and cursor are all optional values
func (TwitterApi) GetMentionsTimeline ¶
func (a TwitterApi) GetMentionsTimeline(v url.Values) (timeline []Tweet, err error)
GetMentionsTimeline returns the most recent mentions (Tweets containing a users’s @screen_name) for the authenticating user. The timeline returned is the equivalent of the one seen when you view your mentions on twitter.com. https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-mentions_timeline
func (TwitterApi) GetMutedUsersIds ¶
func (a TwitterApi) GetMutedUsersIds(v url.Values) (c Cursor, err error)
func (TwitterApi) GetMutedUsersList ¶
func (a TwitterApi) GetMutedUsersList(v url.Values) (c UserCursor, err error)
func (TwitterApi) GetOEmbed ¶
func (a TwitterApi) GetOEmbed(v url.Values) (o OEmbed, err error)
No authorization on this endpoint. Its the only one.
func (TwitterApi) GetOEmbedId ¶
Calls GetOEmbed with the corresponding id. Convenience wrapper for GetOEmbed()
func (TwitterApi) GetRateLimits ¶
func (a TwitterApi) GetRateLimits(r []string) (rateLimitStatusResponse RateLimitStatusResponse, err error)
func (TwitterApi) GetRetweets ¶
func (TwitterApi) GetRetweetsOfMe ¶
func (a TwitterApi) GetRetweetsOfMe(v url.Values) (tweets []Tweet, err error)
GetRetweetsOfMe returns the most recent Tweets authored by the authenticating user that have been retweeted by others. https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/get-statuses-retweets_of_me
func (TwitterApi) GetSearch ¶
func (a TwitterApi) GetSearch(queryString string, v url.Values) (sr SearchResponse, err error)
Example ¶
package main import ( "fmt" "github.com/ChimeraCoder/anaconda" ) func main() { anaconda.SetConsumerKey("your-consumer-key") anaconda.SetConsumerSecret("your-consumer-secret") api := anaconda.NewTwitterApi("your-access-token", "your-access-token-secret") search_result, err := api.GetSearch("golang", nil) if err != nil { panic(err) } for _, tweet := range search_result.Statuses { fmt.Print(tweet.Text) } }
Output:
func (TwitterApi) GetSelf ¶
func (a TwitterApi) GetSelf(v url.Values) (u User, err error)
Get the user object for the authenticated user. Requests /account/verify_credentials
func (TwitterApi) GetTrendsAvailableLocations ¶
func (a TwitterApi) GetTrendsAvailableLocations(v url.Values) (locations []TrendLocation, err error)
func (TwitterApi) GetTrendsByPlace ¶
func (a TwitterApi) GetTrendsByPlace(id int64, v url.Values) (trendResp TrendResponse, err error)
https://developer.twitter.com/en/docs/trends/trends-for-location/api-reference/get-trends-place
func (TwitterApi) GetTrendsClosestLocations ¶
func (a TwitterApi) GetTrendsClosestLocations(lat float64, long float64, v url.Values) (locations []TrendLocation, err error)
func (TwitterApi) GetTweetsLookupByIds ¶
func (TwitterApi) GetUserSearch ¶
func (TwitterApi) GetUserTimeline ¶
func (a TwitterApi) GetUserTimeline(v url.Values) (timeline []Tweet, err error)
GetUserTimeline returns a collection of the most recent Tweets posted by the user indicated by the screen_name or user_id parameters. https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-user_timeline
func (TwitterApi) GetUsersLookup ¶
func (TwitterApi) GetUsersLookupByIds ¶
func (TwitterApi) GetUsersShow ¶
func (TwitterApi) GetUsersShowById ¶
func (TwitterApi) GetUsersSuggestions ¶
func (a TwitterApi) GetUsersSuggestions(v url.Values) (u []User, err error)
func (TwitterApi) GetWHSubscription ¶
func (a TwitterApi) GetWHSubscription(v url.Values, webhookID string) (u interface{}, err error)
GetWHSubscription Provides a way to determine if a webhook configuration is subscribed to the provided user’s Direct Messages. https://dev.twitter.com/webhooks/reference/get/account_activity/webhooks/subscriptions
func (TwitterApi) MuteUserId ¶
func (TwitterApi) PostDMToScreenName ¶
func (a TwitterApi) PostDMToScreenName(text, screenName string) (message DirectMessage, err error)
func (TwitterApi) PostDMToUserId ¶
func (a TwitterApi) PostDMToUserId(text string, userId int64) (message DirectMessage, err error)
func (TwitterApi) PostUsersReportSpam ¶
PostUsersReportSpam : Reports and Blocks a User by screen_name Reference : https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam If you don't want to block the user you should add v.Set("perform_block", "false")
func (TwitterApi) PostUsersReportSpamById ¶
PostUsersReportSpamById : Reports and Blocks a User by user_id Reference : https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam If you don't want to block the user you should add v.Set("perform_block", "false")
func (TwitterApi) PublicStreamFilter ¶
func (a TwitterApi) PublicStreamFilter(v url.Values) (stream *Stream)
XXX: PublicStream(Track|Follow|Locations) func is needed?
func (TwitterApi) PublicStreamFirehose ¶
func (a TwitterApi) PublicStreamFirehose(v url.Values) (stream *Stream)
XXX: To use this API authority is requied. but I dont have this. I cant test.
func (TwitterApi) PublicStreamSample ¶
func (a TwitterApi) PublicStreamSample(v url.Values) (stream *Stream)
func (TwitterApi) PutActivityWebhooks ¶
func (a TwitterApi) PutActivityWebhooks(v url.Values, webhookID string) (u interface{}, err error)
PutActivityWebhooks update webhook which reenables the webhook by setting its status to valid. https://dev.twitter.com/webhooks/reference/put/account_activity/webhooks
func (*TwitterApi) ReturnRateLimitError ¶
func (c *TwitterApi) ReturnRateLimitError(b bool)
ReturnRateLimitError specifies behavior when the Twitter API returns a rate-limit error. If set to true, the query will fail and return the error instead of automatically queuing and retrying the query when the rate limit expires
func (TwitterApi) Retweet ¶
func (a TwitterApi) Retweet(id int64, trimUser bool) (rt Tweet, err error)
Retweet will retweet the status (tweet) with the specified ID. trimUser functions as in DeleteTweet
func (TwitterApi) SetActivityWebhooks ¶
func (a TwitterApi) SetActivityWebhooks(v url.Values) (u WebHookResp, err error)
SetActivityWebhooks represents to set twitter account_activity webhook Registers a new webhook URL for the given application context. The URL will be validated via CRC request before saving. In case the validation fails, a comprehensive error is returned. message to the requester. Only one webhook URL can be registered to an application. https://api.twitter.com/1.1/account_activity/webhooks.json
func (*TwitterApi) SetBaseUrl ¶
func (c *TwitterApi) SetBaseUrl(baseUrl string)
SetBaseUrl is experimental and may be removed in future releases.
func (*TwitterApi) SetDelay ¶
func (c *TwitterApi) SetDelay(t time.Duration)
SetDelay will set the delay between throttled queries To turn of throttling, set it to 0 seconds
func (*TwitterApi) SetLogger ¶
func (c *TwitterApi) SetLogger(l Logger)
SetLogger sets the Logger used by the API client. The default logger is silent. BasicLogger will log to STDERR using the log package from the standard library.
func (TwitterApi) SetWHSubscription ¶
func (a TwitterApi) SetWHSubscription(v url.Values, webhookID string) (u interface{}, err error)
SetWHSubscription Subscribes the provided app to events for the provided user context. When subscribed, all DM events for the provided user will be sent to the app’s webhook via POST request. https://dev.twitter.com/webhooks/reference/post/account_activity/webhooks/subscriptions
func (TwitterApi) SiteStream ¶
func (a TwitterApi) SiteStream(v url.Values) (stream *Stream)
XXX: To use this API authority is requied. but I dont have this. I cant test.
func (TwitterApi) UnRetweet ¶
func (a TwitterApi) UnRetweet(id int64, trimUser bool) (rt Tweet, err error)
UnRetweet will renove retweet Untweets a retweeted status. Returns the original Tweet with retweet details embedded.
https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-unretweet-id trim_user: tweet returned in a timeline will include a user object including only the status authors numerical ID.
func (TwitterApi) UnblockUser ¶
func (TwitterApi) UnblockUserId ¶
func (TwitterApi) Unfavorite ¶
func (a TwitterApi) Unfavorite(id int64) (rt Tweet, err error)
Un-favorites the status specified in the ID parameter as the authenticating user. Returns the un-favorited status in the requested format when successful. https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-favorites-destroy
func (TwitterApi) UnfollowUser ¶
func (a TwitterApi) UnfollowUser(screenname string) (u User, err error)
UnfollowUser unfollows the user with the specified screenname (username) This implements the /friendships/destroy endpoint, though the function name uses the terminology 'unfollow' as this is most consistent with colloquial Twitter terminology.
func (TwitterApi) UnfollowUserId ¶
func (a TwitterApi) UnfollowUserId(userId int64) (u User, err error)
UnfollowUserId unfollows the user with the specified userId. This implements the /friendships/destroy endpoint, though the function name uses the terminology 'unfollow' as this is most consistent with colloquial Twitter terminology.
func (TwitterApi) UnmuteUser ¶
func (TwitterApi) UnmuteUserId ¶
func (TwitterApi) UploadMedia ¶
func (a TwitterApi) UploadMedia(base64String string) (media Media, err error)
func (TwitterApi) UploadVideoAppend ¶
func (a TwitterApi) UploadVideoAppend(mediaIdString string, segmentIndex int, base64String string) error
func (TwitterApi) UploadVideoFinalize ¶
func (a TwitterApi) UploadVideoFinalize(mediaIdString string) (videoMedia VideoMedia, err error)
func (TwitterApi) UploadVideoInit ¶
func (a TwitterApi) UploadVideoInit(totalBytes int, mimeType string) (chunkedMedia ChunkedMedia, err error)
func (TwitterApi) UserStream ¶
func (a TwitterApi) UserStream(v url.Values) (stream *Stream)
func (TwitterApi) VerifyCredentials ¶
func (a TwitterApi) VerifyCredentials() (ok bool, err error)
Verify the credentials by making a very small request
type TwitterError ¶
TwitterError represents a single Twitter error messages/code pair
func (TwitterError) Error ¶
func (te TwitterError) Error() string
type TwitterErrorResponse ¶
type TwitterErrorResponse struct {
Errors []TwitterError `json:"errors"`
}
TwitterErrorResponse has an array of Twitter error messages It satisfies the "error" interface For the most part, Twitter seems to return only a single error message Currently, we assume that this always contains exactly one error message
func (TwitterErrorResponse) Error ¶
func (tr TwitterErrorResponse) Error() string
func (TwitterErrorResponse) First ¶
func (tr TwitterErrorResponse) First() error
type User ¶
type User struct { ContributorsEnabled bool `json:"contributors_enabled"` CreatedAt string `json:"created_at"` DefaultProfile bool `json:"default_profile"` DefaultProfileImage bool `json:"default_profile_image"` Description string `json:"description"` Email string `json:"email"` Entities Entities `json:"entities"` FavouritesCount int `json:"favourites_count"` FollowRequestSent bool `json:"follow_request_sent"` FollowersCount int `json:"followers_count"` Following bool `json:"following"` FriendsCount int `json:"friends_count"` GeoEnabled bool `json:"geo_enabled"` HasExtendedProfile bool `json:"has_extended_profile"` Id int64 `json:"id"` IdStr string `json:"id_str"` IsTranslator bool `json:"is_translator"` IsTranslationEnabled bool `json:"is_translation_enabled"` Lang string `json:"lang"` // BCP-47 code of user defined language ListedCount int64 `json:"listed_count"` Location string `json:"location"` // User defined location Name string `json:"name"` Notifications bool `json:"notifications"` ProfileBackgroundColor string `json:"profile_background_color"` ProfileBackgroundImageURL string `json:"profile_background_image_url"` ProfileBackgroundImageUrlHttps string `json:"profile_background_image_url_https"` ProfileBackgroundTile bool `json:"profile_background_tile"` ProfileBannerURL string `json:"profile_banner_url"` ProfileImageURL string `json:"profile_image_url"` ProfileImageUrlHttps string `json:"profile_image_url_https"` ProfileLinkColor string `json:"profile_link_color"` ProfileSidebarBorderColor string `json:"profile_sidebar_border_color"` ProfileSidebarFillColor string `json:"profile_sidebar_fill_color"` ProfileTextColor string `json:"profile_text_color"` ProfileUseBackgroundImage bool `json:"profile_use_background_image"` Protected bool `json:"protected"` ScreenName string `json:"screen_name"` ShowAllInlineMedia bool `json:"show_all_inline_media"` Status *Tweet `json:"status"` // Only included if the user is a friend StatusesCount int64 `json:"statuses_count"` TimeZone string `json:"time_zone"` URL string `json:"url"` UtcOffset int `json:"utc_offset"` Verified bool `json:"verified"` WithheldInCountries []string `json:"withheld_in_countries"` WithheldScope string `json:"withheld_scope"` }
type UserCursor ¶
type UserWithheldNotice ¶
type VideoMedia ¶
Source Files ¶
- account.go
- backoff.go
- blocks.go
- configuration.go
- directmessage.go
- directmessages.go
- errors.go
- favorites.go
- friends_followers.go
- geosearch.go
- list.go
- lists.go
- log.go
- media.go
- mutes.go
- oembed.go
- place.go
- rate_limit_status.go
- relationship.go
- search.go
- streaming.go
- timeline.go
- trends.go
- tweet.go
- tweets.go
- twitter.go
- twitter_entities.go
- twitter_user.go
- users.go
- webhook.go