嵌入 Instagram 照片非常简单,只需在 URL 末尾添加一个带有 /embed/
的 iframe,如下所示:
https://www.instagram.com/p/BA1wL_MqzTV/embed/
但是我如何强制 UI(关注/点赞按钮)使用特定语言,例如葡萄牙语?
最佳答案
Instagram 的嵌入功能会检测用户浏览器中的语言。这是一个很好的解决方案,因为用户经常使用他们喜欢的语言的浏览器。
但是要强制响应为特定语言,您应该使用 CURL 更改 accept-language 请求 header (恐怕仅使用 iframe 甚至使用 AJAX 是不可能的,因为跨域安全问题)。
如果您想自行验证,请尝试更改默认语言并重新加载包含嵌入内容的页面。在 Google Chrome 上,您应该转到设置,在搜索设置输入框中输入语言,然后单击“语言和输入设置...”按钮。添加语言并重新排序以确保首选语言位于顶部。
(在 Safari 上这是不可能的,除非您更改系统语言)。
现在,您可以使用网络选项卡上的开发人员工具(对于 Mac 用户为 Cmd+Option+i)来验证发送到服务器的 header 。请注意,pt 现在是我的 accept-language header 的第一种语言(在请求 header 组中)。 Instagram 的回复现在采用葡萄牙语(“Seguir”而不是“关注”)。
如果尽管用户浏览器是默认设置,但您仍想强制使用该语言,则应在服务器上实现 CURL,更改 accept-language header 并配置您的 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 和短代码)。也许你应该考虑一下。
最后一个细节:您可能需要一种方法使 iframe 高度等于内容高度。你应该看看这个 Stack Overflow 问题:
Make iframe automatically adjust height according to the contents without using scrollbar?
祝你好运!
关于javascript - 如何将Instagram嵌入特定语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35326248/