繁体   English   中英

使用Rest API通过URL获取媒体

[英]Fetching media by urls with Rest API

我想在statuss中检索媒体 ,但是正如我可以在docs中看到的那样:

对于直接消息中的媒体,必须通过经过身份验证的twitter.com会话或使用OAuth 1.0A使用用户的访问令牌对请求进行签名来访问media_url_https。 无法将这些图像直接嵌入网页中

现在我的问题是,如何使用Java API进行此类请求? 或然而,使用仅应用程序身份验证的RestAPI的正确请求是什么?

另一个问题:直接消息中的媒体和推文中共享的媒体有什么区别? 如何查看表示状态的json对象内部的差异?

直接消息中的媒体与推文中共享的媒体有什么区别?

如果将图像发布到Twitter时间轴,则任何Internet用户都可以看到它。 例如, 在此Tweet上,任何人都可以使用该图像,无论他们是否已登录Twitter。 参见https://pbs.twimg.com/media/CSGwFynWoAA2GGG.jpg

如果将图像发布到直接消息中,则发送者和接收者只能看到该图像。 为了强制执行此操作,用户必须登录其Twitter帐户,或通过应用发送已签名的请求。

例如,此图像只能由我和我发送给https://ton.twitter.com/i/ton/data/dm/639737026624024579/639737026682691584/tg-4St-1.jpg的人看到

如何查看表示状态的json对象内部的差异?

唯一的区别(除了用于获取数据的API调用之外)是介质的UR1。 在DM中,它以ton.开始ton. 例如

media_url": "https://ton.twitter.com/1.1/ton/data/dm/......

而在正常的Tweet中,它看起来像

"media_url": "http://pbs.twimg.com/media/.......

现在我的问题是,如何使用Java API进行此类请求? 或然而,使用仅应用程序身份验证的RestAPI的正确请求是什么?

如果用户已经登录到Twitter,则可以下载该图像。 例如,如果您编写了一个Web应用程序,并且浏览器已经包含Twitter cookie等。

如果不是(或者您使用的是应用),则需要代表用户对请求进行签名。

对于REST-您需要随请求发送OAuth标头。 Twitter文档中示例代码

多余的标题看起来像

Authorization: OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg", oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1318622958", oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb", oauth_version="1.0"

对于Java,建议您看看Twidere的工作方式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM