首页 > 解决方案 > “未定义索引:媒体”当我想使用 Twitter API 上传媒体时

问题描述

我使用 TwitterOauth,这是一个用于 Twitter API 的 Abraham Williams 库。

我想上传媒体以插入私信。

当我尝试上传带有分块或不分块的 base64 编码 PNG 图像时出现错误。

$upload = $connection->upload('media/upload', [
    'media_data' => $base64Encoded,
    'media_type' => 'image/png',
], true); // chunked

dd($upload);

有些人谈论将 media_data 传递给媒体并提供文件的路径,但是 Twitter API 允许提供 base64 编码的媒体,所以我试图让它工作,因为我不想将媒体传输到服务器之前将其上传到 Twitter,即使是暂时的,因为我没有对服务器的写入权限。

所以我生成了一个 base64 图像,我只想通过 API 和 TwitterOauth SDK 将它上传到 Twitter。

图片是用PHP生成的,我用base64编码。我想直接上传到 Twitter API 而不保存图像。Twitter API 允许使用 media_data 参数,但我不知道如何使用它。

在这里,我执行脚本时遇到的错误。

在此处输入图像描述

如何从 Twitter API 上传媒体?

标签: phptwittertwitter-oauth

解决方案


根据https://github.com/abraham/twitteroauth/issues/681,这个问题已经解决了好几年,但没有任何进展。如果库还不支持从原始字符串读取,您应该将原始字符串写入文件(因为支持从文件读取数据以上传该数据,或者您可以处理该票证以在其中完成图书馆。

这就是开源的美妙之处:如果一个库不支持您的需求,您可以扩展它并让可能有同样问题的其他人高兴:)


推荐阅读