Wie twittere ich mit Go und der Twitter API v2?

WBOY
Freigeben: 2024-02-08 22:30:09
nach vorne
1068 Leute haben es durchsucht

如何使用 Twitter API v2 使用 Go 发布推文?

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!

Frageninhalt

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>
Nach dem Login kopieren

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)
    }

}
Nach dem Login kopieren

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.

Problemumgehung

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!