如何使用 Twitter API V2 和 Tweepy Python 发布带有媒体(图片)的推文?

2024-01-03

我正在尝试使用 Twitter API V.2 和 Tweepy 创建我的第一个 Twitter 机器人。所以我可以发布简单的文本推文,但我还没有找到如何使用媒体(图片)发布推文,那么我该怎么做? (我看到有人说“您无法使用 twitter API v2 发布媒体推文...您需要使用 API V 1.1”那么,如果这是真的,我如何使用 Twitter API V1.1 而不是 API V2 ? )

如果你能帮助我的话谢谢你^^

这是我的实际代码:

from io import BytesIO
from PIL import Image
import tweepy
from tweepy import API

consumer_key = "APP_KEY"
consumer_secret = "APP_SECRET_KEY"
access_token = "TOKEN"
access_token_secret = "SECRET_TOKEN"

client = tweepy.Client(
 consumer_key=consumer_key,
 consumer_secret=consumer_secret,
 access_token=access_token,
 access_token_secret=access_token_secret
)

response = client.create_tweet(
  text="Just a dummy tweet",
  # in_reply_to_tweet_id= 1484105392598749186 <--- Reply to a tweet by ID

)

print(f"https://twitter.com/user/status/{response.data['id']}")

对于 v2 免费版本,tweepy.API (v1.1)没有权限再发送推文(至少在我的情况下),但仍然可以上传媒体并检索 media_id。

您可以做的是同时使用 v1.1 和 v2 (tweepy.Client) 为了这。

代码如下:

def get_twitter_conn_v1(api_key, api_secret, access_token, access_token_secret) -> tweepy.API:
    """Get twitter conn 1.1"""

    auth = tweepy.OAuth1UserHandler(api_key, api_secret)
    auth.set_access_token(
        access_token,
        access_token_secret,
    )
    return tweepy.API(auth)

def get_twitter_conn_v2(api_key, api_secret, access_token, access_token_secret) -> tweepy.Client:
    """Get twitter conn 2.0"""

    client = tweepy.Client(
        consumer_key=api_key,
        consumer_secret=api_secret,
        access_token=access_token,
        access_token_secret=access_token_secret,
    )

    return client

client_v1 = get_twitter_conn_v1(api_key, api_secret, access_token, access_token_secret)
client_v2 = get_twitter_conn_v2(api_key, api_secret, access_token, access_token_secret)

media_path = "path_to_media"
media = client_v1.media_upload(filename=media_path)
media_id = media.media_id

client_v2.create_tweet(text="Tweet text", media_ids=[media_id])

希望能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Twitter API V2 和 Tweepy Python 发布带有媒体(图片)的推文? 的相关文章

  • Python:在列表理解本身中引用列表理解?

    这个想法刚刚出现在我的脑海中 假设您出于某种原因想要通过 Python 中的列表理解来获取列表的唯一元素 i if i in created comprehension else 0 for i in 1 2 1 2 3 1 2 0 0 3
  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • SQLite3::SQLException:迁移时重复列名

    我目前正在学习 Ruby on Rails 教程 并且位于https www railstutorial org book updating and deleting users sec administrative 用户 https ww
  • 变量不是 CFString 错误

    嘿伙计们 在运行调试器时我看到以下内容出现second它设置变量的时间 时间戳和校验和是通过此方法依次设置的 当不存在 DataFeedManager 时它可以正常工作 但是当再次返回它时 当设置校验和时它会崩溃 这是感兴趣的函数 sets
  • 当需要列表或元组传递参数时要传递什么?

    我应该使用以下哪一项 为什么 import numpy as np a np zeros 2 3 b np zeros 2 3 在很多情况下 你可以用任何一种方式传递参数 我只是想知道是否一种方式更Pythonic 或者是否有其他原因应该优
  • Mac OSX 上的 Java 进程不释放套接字

    我时不时地遇到一个奇怪的问题 实际上经常 我正在运行一个服务器应用程序 它为自己绑定一个套接字 但偶尔 套接字没有被释放 尽管 Eclipse 报告终止失败 但该进程已终止 但它从 ps 和 JConsole JVisualVM 中正确消失
  • pubnub,如何识别发件人?

    当从 pubnub 收到消息时 没有有关发件人的信息 如何知道这是来自 guestA 还是 guestB 的消息 网络上有一些示例 发件人在消息中发送了他的名字 但如何知道他没有欺骗其他人的身份 这是聊天界面的示例
  • JS SDK getLoginStatus 不返回 userID 也不返回signedRequest

    我正在使用 PhoneGap Cordova 和 facebook 插件 一切似乎都正常 除了 getLoginStatus 没有按定义工作here http developers facebook com docs reference j
  • 将 Oracle 存储过程结果映射到自定义 Java 类型(类)

    我必须在 Oracle 11g 中调用一个使用单个 IN OUT 参数的存储过程 该参数是 Oracle 自定义类型 定义为 CREATE OR REPLACE TYPE SEPADD T NAPRAVI NALOG TEST IS OBJ
  • 阻止JavaScript中的“等待”功能?

    作为我正在开发的 Javascript 项目的一部分 有一些同步 ajax 调用 我猜这使它成为 sjax 但我离题了 我现在正在编写一个调试面板 它允许我通过包装来使用一些人工模拟的网络条件来测试该站点 ajax 简单的事情 伪造 500
  • 如何在后台运行控制台应用程序(无 UI)? [复制]

    这个问题在这里已经有答案了 可能的重复 不启动控制台的 Net 控制台应用程序 https stackoverflow com questions 934901 net console application that doesnt bri
  • AndroidX 安全 EncryptedSharedPreferences v1.1.0 /w API 21 问题

    我决定使用 AndroidX 安全库中的新 EncryptedSharedPreferences 由于该应用程序支持 API 21 及更高版本 我决定尝试这个新的 v1 1 0 alpha02 版本 因为它支持 API 21 因此 我成功地
  • 新旧 WebJob 版本均在部署后运行

    我有一个通过 Kudu API 部署的连续 WebJob api continuouswebjobs job name 如概述的here https github com projectkudu kudu wiki WebJobs API
  • findViewById 对于首选项布局返回 null

    我有一个首选项屏幕 responder generic xml 如下所示
  • 在图中查找长度为 k 的派系

    我正在处理约 200 个节点和约 3500 个边的图 我需要找到该图的所有派系 使用networkx的enumerate all cliques 对于最多 100 个节点的较小图形 它可以正常工作 但对于较大的图形 内存不足 但是 希望这个
  • 如何使用C比较十六进制值?

    我正在使用十六进制值 到目前为止 我知道如何打印十六进制值以及精度 现在我想比较十六进制值 例如 我正在将数据从文件读取到字符缓冲区中 现在我想比较缓冲区中数据的十六进制值 有这样的事吗 if hex buffer i gt 0X3F th
  • 在 Grunt.js 中,如何监视多个文件,但仅在更改的文件上运行任务?

    在学习如何使用的过程中grunt https github com cowboy grunt 我正在尝试制作一个简单的咖啡脚本观察器 编译器 问题是 如果我告诉watch任务是观察多个文件 其中一个发生变化 它将把所有文件传递给coffee
  • 本地无法测试云函数,模拟器启动失败 TypeError: _onRequestWithOpts is not a function

    当我尝试从项目中的函数目录启动 shell 进行本地测试时 模拟器会启动 但无法加载我的函数 当我运行 npm run build 时 我没有收到任何错误 怎么了 我尝试删除函数目录并使用 firebase tools cli 再次创建它
  • 如何使用谷歌地图为国家着色?

    我需要根据范围 例如 人口 为世界上不同的国家着色 Red gt 100 million Green 50 99 million Ash lt 50 million 如何才能做到这一点 我的开发环境是Rails3 请帮忙 我将附上地图的示例
  • 用于输入验证的正则表达式白名单 - 重音不敏感

    我希望能够将用户输入限制为有效字符白名单 但我不想阻止来自其他文化的人注册 到目前为止 我有这个 a zA Z0 9 它允许大多数法语口音 但拉丁字符集中的口音列表非常多 我更愿意使用白名单而不是黑名单 以防我错过一些东西 Note 这适用
  • dotnet run 具有特定 url 的网站

    如何指定使用 dotnet cli 来使用特定配置运行我的 Web 应用程序 我知道可以使用hosting json 但我没有找到任何文档如何执行此操作以及这与 dotnet cli 有何关系 看看这个样本 https github com
  • 如何使用 Twitter API V2 和 Tweepy Python 发布带有媒体(图片)的推文?

    我正在尝试使用 Twitter API V 2 和 Tweepy 创建我的第一个 Twitter 机器人 所以我可以发布简单的文本推文 但我还没有找到如何使用媒体 图片 发布推文 那么我该怎么做 我看到有人说 您无法使用 twitter A