【发布时间】: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
嵌入 Instagram 照片很简单,只需在 URL 末尾添加一个带有 /embed/ 的 iframe,如下所示:
https://www.instagram.com/p/BA1wL_MqzTV/embed/
但是我怎样才能强制 UI(关注/点赞按钮)成为像葡萄牙语这样的特定语言?
【问题讨论】:
标签: javascript html instagram social-networking embedding
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 和短代码)。也许你应该考虑一下。
最后一个细节:您可能需要一种使 iframe 高度等于内容高度的方法。你应该看看这个 Stack Overflow 问题:
Make iframe automatically adjust height according to the contents without using scrollbar?
祝你好运!
【讨论】: