Так что я немного новичок в Go, так что извините за невежество. Я пытаюсь выполнить простой вызов REST API для twitter, используя oauth2 для вызовов «только для приложений», но я продолжаю получать «Неверный или просроченный токен» в качестве ошибки.
У кого-нибудь есть опыт установки подобного?
Ответ: {"errors":[{"code":89,"message":"Недействительный или просроченный токен."}]}
package main
import "fmt"
import "encoding/base64"
import "io/ioutil"
import "time"
import "golang.org/x/oauth2"
func main() {
config := &oauth2.Config{
Endpoint: oauth2.Endpoint{
AuthURL: "https://api.twitter.com/oauth2/token",
TokenURL: "https://api.twitter.com/oauth/request_token",
},
}
accessToken := base64.StdEncoding.EncodeToString([]byte("{Consumer Key (API Key)}:{Consumer Secret (API Secret)}"));
token := &oauth2.Token{
AccessToken: accessToken,
Expiry: time.Now().Add(time.Duration(24)*time.Hour)
}
httpClient := config.Client(oauth2.NoContext, token)
resp, err := httpClient.Get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=google")
if (err != nil) {
fmt.Printf("Error: %s", err)
}
defer resp.Body.Close();
body, err := ioutil.ReadAll(resp.Body);
if (err != nil) {
fmt.Printf("Error: %s", err)
}
fmt.Printf("Access Token: %s\nToken: %s\nResponse: %s\n", accessToken, token, body)
}