


Bagaimana untuk tweet menggunakan Go menggunakan Twitter API v2?
Feb 08, 2024 pm 10:30 PMDalam era media sosial hari ini, Twitter telah menjadi platform penting bagi ramai orang untuk berkomunikasi, berkongsi dan mendapatkan maklumat. Menggunakan API Twitter untuk tweet adalah kemahiran penting untuk pembangun. Dalam artikel ini, editor PHP Youzi akan memperkenalkan kepada anda cara menggunakan Twitter API v2 dan bahasa Go untuk menerbitkan tweet. Dengan menguasai teknik ini, anda akan dapat menerbitkan kandungan di Twitter dengan lebih fleksibel dan berinteraksi dengan lebih ramai pengguna. Mari kita ketahui bersama!
Kandungan soalan
Seperti tajuknya, apabila saya cuba tweet menggunakan Go (saya mempunyai akaun pembangun X/Twitter percuma) saya mendapat mesej ralat berikut:
<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>
Ini kod semasa saya:
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) } }
Saya telah melawat beberapa sumber dalam talian tetapi mereka nampaknya tertumpu kebanyakannya pada contoh Python dan saya sedang mencari bantuan khusus Go. Sebarang pandangan atau cadangan tentang cara menyelesaikan isu ini amat dihargai.
Penyelesaian
Perpustakaan yang anda gunakan, go-twitter
, menggunakan API twitter v1.1. Pelan percuma tidak mempunyai akses kepada API ini, itulah maksud mesej ralat yang anda terima.
Untuk perpustakaan yang menggunakan v2, lihat dokumentasi: https://developer.twitter.com/ en/docs/twitter-api/tools-and-libraries/v2#go
Atas ialah kandungan terperinci Bagaimana untuk tweet menggunakan Go menggunakan Twitter API v2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menggunakan refleksi untuk mengakses medan dan kaedah persendirian dalam golang

Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang

Perbezaan antara ujian prestasi dan ujian unit dalam bahasa Go

Apakah perangkap yang perlu kita perhatikan semasa mereka bentuk sistem teragih dengan teknologi Golang?

Perpustakaan dan alatan teknologi Golang yang digunakan dalam pembelajaran mesin

Evolusi konvensyen penamaan fungsi golang

Peranan teknologi Golang dalam pembangunan IoT mudah alih

Bolehkah parameter pembolehubah golang digunakan untuk mengembalikan nilai fungsi?
