Heim >Backend-Entwicklung >Golang >Wie twittere ich mit Go und der Twitter API v2?
Im heutigen Zeitalter der sozialen Medien ist Twitter für viele Menschen zu einer wichtigen Plattform geworden, um zu kommunizieren, Informationen auszutauschen und zu erhalten. Die Verwendung der Twitter-API zum Twittern ist eine wichtige Fähigkeit für Entwickler. In diesem Artikel stellt Ihnen der PHP-Editor Youzi vor, wie Sie Twitter API v2 und die Go-Sprache zum Veröffentlichen von Tweets verwenden. Wenn Sie diese Techniken beherrschen, können Sie Inhalte flexibler auf Twitter veröffentlichen und mit mehr Benutzern interagieren. Finden wir es gemeinsam heraus!
Wie der Titel schon sagt, erhalte ich beim Versuch, mit Go zu twittern (ich habe ein kostenloses X/Twitter-Entwicklerkonto), die folgende Fehlermeldung:
<code> 2023/12/06 21:56:24 twitter: 453 You currently have access to a subset of Twitter API v2 endpoints and limited v1.1 endpoints (e.g. media post, oauth) only. If you need access to this endpoint, you may need a different access level. You can learn more here: https://developer.twitter.com/en/portal/product 2023/12/06/21:56:24 &{Status:403 Forbidden StatusCode:403 ... [truncated for brevity]} </code>
Das ist mein aktueller Code:
package main import ( // other imports "fmt" "github.com/joho/godotenv" "log" "os" "github.com/dghubble/go-twitter/twitter" "github.com/dghubble/oauth1" ) type Credentials struct { ConsumerKey string ConsumerSecret string AccessToken string AccessTokenSecret string } func getClient(creds *Credentials) (*twitter.Client, error) { config := oauth1.NewConfig(creds.ConsumerKey, creds.ConsumerSecret) token := oauth1.NewToken(creds.AccessToken, creds.AccessTokenSecret) httpClient := config.Client(oauth1.NoContext, token) client := twitter.NewClient(httpClient) verifyParams := &twitter.AccountVerifyParams{ SkipStatus: twitter.Bool(true), IncludeEmail: twitter.Bool(true), } user, _, err := client.Accounts.VerifyCredentials(verifyParams) if err != nil { return nil, err } log.Printf("User's ACCOUNT:\n%+v\n", user) return client, nil } func init() { if err := godotenv.Load(); err != nil { log.Fatal("Error loading .env file") } } func main() { creds := Credentials{ AccessToken: os.Getenv("ACCESS_TOKEN"), AccessTokenSecret: os.Getenv("ACCESS_TOKEN_SECRET"), ConsumerKey: os.Getenv("CONSUMER_KEY"), ConsumerSecret: os.Getenv("CONSUMER_SECRET"), } { // some code here... client, err := getClient(&creds) if err != nil { log.Println("Error getting Twitter Client, this is expected if you did not supply your Twitter API tokens") log.Println(err) } message := "Hello World" tweet, resp, err := client.Statuses.Update(message, nil) if err != nil { log.Println(err) } log.Printf("%+v\n", resp) log.Printf("%+v\n", tweet) } }
Ich habe einige Online-Ressourcen besucht, aber sie scheinen sich hauptsächlich auf Python-Beispiele zu konzentrieren, und ich suche nach Go-spezifischer Hilfe. Für Hinweise oder Vorschläge zur Lösung dieses Problems wären wir sehr dankbar.
Die von Ihnen verwendete Bibliothek go-twitter
, verwendet die Twitter-API v1.1. Der kostenlose Plan hat keinen Zugriff auf diese API, weshalb die Fehlermeldung, die Sie erhalten, darauf zurückzuführen ist.
Informationen zu Bibliotheken, die v2 verwenden, finden Sie in der Dokumentation: https://developer.twitter.com/ en/docs/twitter-api/tools-and-libraries/v2#go
Das obige ist der detaillierte Inhalt vonWie twittere ich mit Go und der Twitter API v2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!