1

自昨天 Pinterest 更新其网站以来,我的 Pinterest 的“Pin it”按钮停止正常工作,即旋转轮永远在弹出窗口中运行。

我的代码 - 以前可以正常工作 - 是:

    <a data-pin-config="beside" href="//pinterest.com/pin/create/button/?url=<?=urlencode($url)?>&media=<?=urlencode($image_url) ?>&description=The picture I just pinned!" data-pin-do="buttonPin" >
     <img src="//assets.pinterest.com/images/pidgets/pin_it_button.png" />
    </a>                    

</body>我还在结束标记之前包含了 Pinterest js 。

有趣的是,当我访问 Pinterest 的网站并尝试Add Pin通过 URL 访问时,我得到:

“哎呀!无效的 URL”

我的 $url 是指传递几个参数的php页面,即 http://www.mywebsite.com/img.php?img_id=photo (999).jpg&album=...&page=...

更新 #1:我注意到,当发布的 URL 不包含任何括号时,直接或通过按钮在 Pinterest 上发布没有问题。尽管 URL 都在 php 中进行了 urlencoded,即 ( 和 ) 分别编码为 %28 和 %29,这应该处理括号,但它似乎不起作用。尽管我意识到它正在解释 url 编码的 %28 和 %29 代码,但浏览器仍然显示括号。

更新 #2:收到 Pinterest 的回复说

"有时,如果网站阻止亚马逊 IP,我们会看到这种行为。确保您没有阻止亚马逊 IP 或将我们的用户代理列入白名单:

Pinterest/0.1 + http://pinterest.com/

不幸的是,我们没有可以将您列入白名单的专用 IP 组,因为我们的 IP 会随着时间而变化。"

在 Pinterest 的回复之后,我进行了研究,并提出了以下相关链接:

问题:

  • 这对任何人有用吗?

  • 修改 .htaccess 或 robots.txt 以实现此目的的最佳方法是什么?

  • 我也面临与 Tumblr 相同的问题。我已经验证没有括号,共享按钮可以正常工作。如果没有其他方法,我应该从 URI 中删除所有括号吗?

4

1 回答 1

1

问题解决了!

导致无法固定(或在 Tumblr 上分享)的不是括号,而是 URL 中的空格(在我的例子中是括号前的空格)。尽管空格是 URL 编码 (+),但 Pinterest 将其视为无效 URL。

我从图片文件名中删除了所有空格,这也意味着来自 URL,因为 URL 作为参数传递图片文件名。

这解决了 Pinterest 和 Tumblr 按钮的问题。

于 2013-03-14T10:26:36.853 回答