如何从Twitter获取json.json文件在React Native App中嵌入API

ffx8fchx  于 2023-10-22  发布在  React
关注(0)|答案(1)|浏览(126)

根据Twitter文档,为了将Twitter视频嵌入到应用程序中,你必须像这样使用他们的嵌入端点:https://publish.twitter.com/oembed?url=${enter_twitter_video_url}
示例:https://publish.twitter.com/oembed?url=https://twitter.com/infinite_red/status/1507392896739151882
奇怪的是,它不像普通的嵌入链接那样,你可以从fetch调用中获得json响应。它实际上会触发浏览器中的json.json下载。在该文件中,它包含嵌入链接。从代码的Angular 来看,这显然使事情变得复杂。如果它只是使用axios或apisauce发送一个json响应,那么很容易解析嵌入链接的响应。相反,它实际上是在一个文件中,你必须下载。
我尝试使用rn-fetch-blob来抓取这个json文件,但是它却从twitter页面抓取了空的状态html数据。有谁知道如何做到这一点吗?
我也试过一些过时的库,但也不起作用,因为这个json下载问题一定是twitter的一个新变化。它曾经是一个真正的JSON响应。
Twitter嵌入文档:
https://developer.twitter.com/en/docs/twitter-for-websites/timelines/guides/oembed-api
https://developer.twitter.com/en/docs/twitter-for-websites/embedded-tweets/overview
今天是奋斗的一天,先谢谢你...

wrrgggsh

wrrgggsh1#

你需要编码URIComponent链接。然后响应将给你给予干净的JSON。

export const getTwitterEmbed = async (tweet_post) => {

    const post_url = tweet_post

    try {
        const response = await fetch(

            `https://publish.twitter.com/oembed?url=${encodeURIComponent(post_url)}`,
            {
                headers: {
                    Accept: 'application/json; charset=utf-8'
                }
            }
        )
        const post = await response.json()

        return post

    } catch (error) {
        console.log(error);
        return error
    }
}





[![enter image description here][1]][1]

相关问题