在不使用卡片的情况下分享图像到Twitter

8

假设有一张图片,地址为http://www.thissite.will/never/be-finished.png,最简单的方法是什么来在Twitter上分享它,最好不要使用卡片?


用户自定义一个SVG,当他们满意后,我将其转换为PNG并存储在我的服务器上。 我想给他们提供在Twitter上分享图片的选项。他们点击一个按钮(我可以实现),然后会打开一个对话框,在那里他们可以添加推文(应该已经包含图片)。 我知道类似的问题之前在这个网站上被问过,但我不想使用"卡片"来分享图片。相反,我想要一个典型的非卡片推文,只带有一张图片(就像this)。 我已经反复查看了Twitter开发者文档,但我找不到有用的信息。 POST statuses/update_with_media方法已经过时,而“上传媒体指南”的链接是失效的。 我认为,这个指南就是它想要链接的内容,但它没有JavaScript代码来建议如何实际实现这一点。

请帮忙。


我基于POST media/upload尝试:

$.ajax({
    url: "https://upload.twitter.com/1.1/media/upload.json", 
    format: "post", 
    data: {"data" : link}
}).success(function(response) {
    console.log(":)");
    console.log(response);
}).fail(function(response) {
    console.log(":(");
    console.log(response.responseText);
});

这个失败了。 responseText{"errors":[{"code":215,"message":"Bad Authentication data."}]}


基本上,我想做类似于StackOverflow的事情。当您在问题上点击“分享”,然后选择Twitter时,会弹出一个新窗口,其中包含一个链接到该问题以及用户可以编写自己的消息的地方。(Twitter提供接口。
然而,在我的情况下,当推文被发送时,我希望只有一张图片,而不是返回页面链接和从页面中提取的一些文本。

数据:..实际上不是一个URL,而是一个Data URI - Stefan Hegny
@StefanHegny 谢谢!那很有帮助。你有什么关于如何在Facebook上分享的想法吗? - Randoms
不好意思,不是很清楚,希望有专家能够提供帮助...你想分享到Facebook还是Twitter?你似乎混淆了这两个(现在你说的是Facebook,但问题标记为Twitter)。 - Stefan Hegny
好的,所以我无法编辑赏金文本(?),但我的意思是我正在寻找一种在Twitter上分享PNG数据的过程(如我上面所描述的),而不是SVG数据,因为我已经完成了更改格式的工作。 - Randoms
你想要做的事情需要你先拥有一个Twitter应用程序,用户必须授权一次。同时,不鼓励进行客户端Twitter API请求。你应该学习如何创建一个Twitter应用程序以及如何授权用户代表他们发送推文。这是唯一明智的选择。接下来将会涉及到卡片或图像的问题。 - Kul-Tigin
显示剩余2条评论
1个回答

0

Twitter没有官方的分享图片方式。你必须使用Twitter卡片。这是我一个带有漂亮图片的网页。在Twitter卡片验证器上测试该URL,你会得到相当不错的图片。这就像你在Bloomberg的twitter状态链接中的例子一样。现在你可以点击这个链接来发推文,它是我的那个网页(当然你可以删除那条推文,这只是为了测试而示范的)。你将获得大图像和自定义文本选项。这些都是你想要的。

以上是Twitter分享超链接的参数

我给你的超链接是这样的:

https://twitter.com/intent/tweet?text=Cheapest%20CDNs%20With%20HTTPS%2C%20IPv6%2C%20HTTP%2F2%2C%20Brotli&url=https%3A%2F%2Fthecustomizewindows.com%2F2017%2F06%2Fcheapest-cdns-https-ipv6-http2-brotli%2F&hastag=AbhishekGhosh&via=AbhishekCTRL&original_referer=https%3A%2F%2Fthecustomizewindows.com%2F2017%2F06%2Fcheapest-cdns-https-ipv6-http2-brotli%2F

https://twitter.com/intent/tweet 是不变的部分。 ?text= 是你想分享的文本内容。 &url= 是你想分享的URL。 &via= 是可选的关联账户。 在大多数情况下,&original_referer=&url= 相同,&hashtags 是你想添加的话题标签,但无法使用。

但是,你想要分享的是图片而非网页。这有点棘手。

所需工具

你需要一种带有PHP-MySQL配对的Web软件。应用程序将在用户完成使用HTML标记生成的Twitter卡片的用户生成网页后编写一个唯一的URL。Twitter卡片取决于网页的标记、图片、域名的网络管理员设置等因素。你可以使用类似PHP的语言通过网页的HTML标记来设置所需的图片。

原型应用示例

作为使用WordPress开发的一个例子,当我还没有发布文章时,我有一张图片,但是预览的URL是私有的。在WordPress中,可以将未发布的文章公开。这可以通过4个基本插件进行测试:
  1. https://wordpress.org/plugins/public-post-preview/(使未发布的文章具有公共预览)
  2. https://wordpress.org/plugins/developer-share-buttons/(生成Twitter分享链接)
  3. https://wordpress.org/plugins/twitter-cards-meta/(生成Twitter元标记)
  4. https://wordpress.org/plugins/live-composer-page-builder/(为注册用户提供在WordPress前端编辑的方式)
当然,也有新的WordPress API可以从其他服务器上执行此操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接