【问题标题】:How to embedded Instagram in a specific language?如何以特定语言嵌入 Instagram?
【发布时间】:2016-02-10 21:25:20
【问题描述】:

嵌入 Instagram 照片很简单,只需在 URL 末尾添加一个带有 /embed/ 的 iframe,如下所示:

https://www.instagram.com/p/BA1wL_MqzTV/embed/

但是我怎样才能强制 UI(关注/点赞按钮)成为像葡萄牙语这样的特定语言?

【问题讨论】:

    标签: javascript html instagram social-networking embedding


    【解决方案1】:

    Instagram 的嵌入会检测用户浏览器中的语言。这是一个很好的解决方案,因为用户经常以他们喜欢的语言使用他们的浏览器。

    但要强制响应为特定语言,您应该使用 CURL 更改 accept-language 请求标头(恐怕仅使用 iframe 甚至使用 AJAX 都是不可能的,因为跨域安全问题)。

    如果您想自己验证,请尝试更改默认语言并重新加载包含嵌入的页面。在 Google Chrome 上,您应该转到 Settings,在 Search Settings 输入框中输入 Language,然后点击“语言和输入设置...” 按钮。添加语言并重新排序以确保首选语言位于顶部。

    (在 Safari 上,除非您更改系统语言,否则这是不可能的)。

    现在您可以在 Network 选项卡上使用 Developer Tools(Cmd+Option+i 用于 mac 用户)来验证发送到服务器的标头。请注意,现在 pt 是我的 accept-language 标头的第一种语言(在 Request Headers 组中)。 Instagram 的回复现在使用葡萄牙语(“Seguir”而不是“Follow”)。

    如果您仍然想强制使用该语言,尽管用户浏览器是默认的,您应该在您的服务器上实现一个 CURL 更改 accept-language 标头并配置您的 iframe src给它。下面是 PHP 工作示例。

    文件:myURL.php

    $url = $_GET["url"];
    
    $request_headers = array();
    $request_headers[] = 'accept-language: pt,en-US;q=0.8'; // Portuguese response first
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers); 
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    print_r($output);
    

    HTML:

    <iframe src='myUrl.php?url=https://https://www.instagram.com/p/BA1wL_MqzTV/embed/'></iframe>
    

    我认为阅读 Instagram API 是个好主意。还有另一种方法(oembed 和短代码)。也许你应该考虑一下。

    https://www.instagram.com/developer/embedding/

    最后一个细节:您可能需要一种使 iframe 高度等于内容高度的方法。你应该看看这个 Stack Overflow 问题:

    Make iframe automatically adjust height according to the contents without using scrollbar?

    祝你好运!

    【讨论】:

    • 是的,我知道接受语言标头,但我希望避免在我的服务器上创建代理。除此之外,由于 CORS,所有这些解决方案都会破坏用户交互部分(例如关注按钮)。我想我要么必须忍受这个问题,要么使用短代码 url 来获取图像并且不提供交互功能。
    • 另一个(更难的)选项是从 API 获取照片,然后使用您的个性化按钮提供 Like 和 Comment 功能,调用 API 方法。为此,您应该要求 Instagram 审核您的应用并授予点赞和评论权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多