Така че аз съм малко начинаещ в Go, така че извинете невежеството ми. Опитвам се да направя просто извикване на REST API към twitter, използвайки oauth2 за извиквания „само за приложение“, но продължавам да получавам „Невалиден или изтекъл токен“ като грешка.
Някой има ли опит с настройването на нещо подобно?
Отговорът е: {"грешки":[{"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)
}