Tumblr - 在主页上获得8位数的reblog代码(差不多......)

时间:2011-10-08 18:16:12

标签: jquery iframe tumblr

我已经看到两个网站在野外设置通过黑客攻击主页上的Like和Reblog按钮。

这似乎是最好的参考:http://cicerontheme.tumblr.com/

不知何故,他们设法获取reblog网址,我不知道如何。我一直在搜索他们的代码,而我发现的就是这样的按钮:

$('a.likeLink').click(function() {
    var post = $(this).closest('.post');
    var id = post.attr('id');
    var oath = post.attr('rel').slice(-8);
    var like = 'http://www.tumblr.com/like/'+oath+'?id='+id;
    $('#likeit').attr('src', like);
});

有人在this Stack overflow discussion进行了一些讨论,但是再一次,没有达到问题的关键,如何获得reblog网址。

我已经浏览了脚本资源,并没有找到任何个人脚本,只是来自tumblr的脚本,我的chrome扩展等等。他们从哪里获取它?!

在上面粘贴的“喜欢”代码中,他们很容易获得帖子ID,你只需要使用Tumblrs {Permalink},但是reblog网址是从rel属性获取的。

希望有人可以提供帮助!

感谢。

4 个答案:

答案 0 :(得分:4)

查看源代码:http://cicerontheme.tumblr.com/

1. $('a.likeLink').click(function() {
2.     var post = $(this).closest('.post');
3.     var id = post.attr('id');
4.    var oath = post.attr('rel').slice(-8);
5.    var like = 'http://www.tumblr.com/like/'+oath+'?id='+id;
6.    $('#likeit').attr('src', like);
7. });

代码说明:

  1. 使用类likeLink
  2. 向锚点添加事件处理程序
  3. 使用JQuery .closest方法查找与类post最接近的元素(实际上,它是一个锚点,请参阅源代码)
  4. 从主播的ID属性中获取十位数的tumblr ID(使用.attr('id')
  5. 获取主播的rel属性,并使用.slice(-8)获取最后8个字符
  6. 创建链接
  7. 设置ID为src的{​​{1}}的{​​{1}}属性(请参阅来源)。这会导致<iframe>的请求。 哈克?

答案 1 :(得分:3)

非常确定这不是JS的事情 - 当你查看你链接的网站的来源时,reblog链接已经存在(意思是,它们没有被动态插入)。

我认为Ciceron主题实际上是在生成reblog链接 - 你试过添加:

<a href="{ReblogURL}">Reblog</a> 

...到你的主题?

答案 2 :(得分:1)

在你的tumblr仪表板上,每个帖子都有一个'reblog'图标。当然,如果你点击这个,该帖子的reblog网址将出现在地址栏中?当然,这意味着为每个帖子手动添加网址,但这是我找到的默认tumblr控件的唯一选择。

'关注'和'仪表板'是bref标准的href命令,但我仍在寻找一种方法来为'like'功能提供一个简单的文本链接,这样我就可以完全取消默认控件

答案 3 :(得分:1)

“reblog key”的使用由Tumblr批准,并且在某些开发人员的情况下受到鼓励,就像你提到的那样。

Tumblr有一个 API 内部主题开发选项来使用 reblog键。这是一个巧妙的技巧,但要清楚它是不是黑客,因为Tumblr确实打算,鼓励并希望使用这个工具并且对每个人都有帮助。

请参阅“reblog key”后期使用上的特定API文章: https://www.tumblr.com/docs/en/api/v2#reblogging

当您使用Tumblr API以编程方式发布到Tumblr博客时,您将收到“reblog key”的回复。您可以创建一个脚本,该脚本可以显示您自己的tumblr帖子的 reblog网址,而不是可以创建新帖子的共享按钮。这可以帮助您将tumblr本地化到您自己的源,并为SEO发送更好的“Canonical Link”功能。

在Tumblr内部的主题中,您可以使用 {ReblogURL}来显示reblog网址,或者创建一个类似按钮。

有很多方法可以正确使用它,但也有很多方法不允许,即使它很容易或很明显你可以“做” 。最重要的是,对其他用户要好,不做其他用户不喜欢的事情(隐藏点击等)。

您可以在此处了解Tumblr服务条款: https://www.tumblr.com/policy/en/terms-of-service

我提到了API,它有自己的一小部分规则,它在服务条款中链接。您可以阅读 Tumblr Application Developer和AP​​I许可协议https://www.tumblr.com/docs/api_agreement