如何添加一个链接,让用户在我的网站上更改他们的 Gravatar?(与您在 Wordpress 上更改 Gravatar 的方式相同)
谢谢,肯尼斯
如果您提供指向http://en.gravatar.com/emails/的链接,他们会转到 Gravatar 网站,在那里他们可以登录并更改他们的帐户。我不确定是否有任何其他公共 API 允许这种更改。
查看 wordpress.com 上的 html 源代码,看起来他们正在使用ThickBox之类的东西在 iframe 中加载 Gravatar 网站:
<a href="https://secure.gravatar.com/accounts/force-by-email/wpcom/username/somecode?TB_iframe=true&height=475&width=960" id="gravatar_ui" class="thickbox" title="gravatar.com" onclick="return false;">
<img src="https://secure.gravatar.com/avatar/gravatarid?s=128&r=any&time=43179786" class="no-grav">
<p style="text-align: center;">Change your Gravatar</p>
</a>
Automattic 的 Gravatar API 不提供此功能。您最好的选择是将用户链接到 Gravatar 网站。
如果你真的想要你可以用 CSRF 做一些试验,我还没有测试过 Gravatar 网站是否能防止这种利用。最好的情况是,它会参差不齐——我无法想象有人会像他们的 Twitter 账户一样始终保持登录到 Gravatar 账户。
最后,您可以在 iFrame 中加载 Gravatar 站点,这样用户就不会真正离开您的域。
Gravatar 不允许此功能。WordPress.com 能做到这一点的唯一原因是因为它们都是 Automattic 的服务,而且它们都使用 WordPress.com 帐户,所以他们得到了一些额外的字符串。您最好的选择是链接到 Gravatar 网站,或将其加载到 iframe 中。如果您在 iframe 中加载它,它会提示他们登录到他们的 WordPress.com 帐户,除非他们经常使用 WordPress.com,并且他们的浏览器保持登录到该帐户。
应该可以使用 XML-RPC 实现头像的转换。协议由 Gravatar 指定:http ://en.gravatar.com/site/implement/xmlrpc/
其实有电话
grav.saveData
- 将二进制图像数据保存为此帐户的用户图像grav.saveUrl
- 通过其 URL 读取图像并将其另存为该帐户的用户图像因此,您需要自己实施更改,但可以避免人们必须在 gravatar 上登录。