首页 > 后端开发 > Golang > 如何使用 Twitter API v2 使用 Go 发布推文?

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2024-02-08 22:30:09
转载
1391 人浏览过

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

在如今社交媒体的时代,Twitter已经成为了许多人交流、分享和获取信息的重要平台。对于开发者来说,使用Twitter API来发布推文是一项重要的技能。本文将由php小编柚子为您介绍如何使用Twitter API v2和Go语言来发布推文。通过掌握这些技巧,您将能够更灵活地在Twitter上发布内容,与更多的用户进行互动。让我们一起来了解吧!

问题内容

正如标题所示,当我尝试使用 Go 发布推文(我有免费的 X/Twitter 开发者帐户)时,我收到以下错误消息:

1

2

3

4

5

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

登录后复制

这是我当前的代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

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)

    }

 

}

登录后复制

我访问了一些在线资源,但似乎主要集中在 Python 示例上,我正在寻找特定于 Go 的帮助。任何有关解决此问题的见解或建议将不胜感激。

解决方法

您正在使用的库,go-twitter使用 v1.1 twitter API。免费计划无法访问此 API,这正是您收到的错误消息的内容。

对于使用 v2 的库,请查看文档: https://developer.twitter.com/ en/docs/twitter-api/tools-and-libraries/v2#go

以上是如何使用 Twitter API v2 使用 Go 发布推文?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
双语言或多语言网站怎么做?
来自于 1970-01-01 08:00:00
0
0
0
objective-c - iOS9如何设置默认国际化语言
来自于 1970-01-01 08:00:00
0
0
0
这个是Java语言的吗
来自于 1970-01-01 08:00:00
0
0
0
php是世界上最好的语言
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板