javascript - 通过 json 检索到的 Blogger 主页 URL

标签 javascript json blogger

免责声明:我对编程一无所知。
我只是尽我所能,尽可能地 catch 。

在阅读(以及稍后尝试)对 this question 的答案时,我在想一个可能不错且有用的更新是在 json 术语中具有相同类型的信息,即如何检索 Blogger 的“主页”URL通过 json 写博客。

我试图自己弄清楚,因为我知道,例如,...

<script type="text/javascript">
function specialpost(json) {
 document.write('<div>');
// VARIABLE DECLARATION
 var i;
 var j;
// LOOP
 for (i = 0; i < json.feed.entry.length; i++)
 {
  for (j = 0; j < json.feed.entry[i].link.length; j++) {
   if (json.feed.entry[i].link[j].rel == 'alternate') {
    break;
   }
  }
var postUrl = "'" + json.feed.entry[i].link[j].href + "'";
var postTitle = json.feed.entry[i].title.$t;
var postContent = json.feed.entry[i].content.$t;
var item = '<h3><a href="' + postUrl + '" target="_blank">' + postTitle + '</a></h3><p>' + postContent + '</p>';
 document.write(item);
 }
 document.write('</div>');
 }
</script>
<script src="https://MYBLOG.blogspot.com/feeds/posts/default/-/special?max-results=NUMBER_OF_POSTS_DISPLAYED&alt=json-in-script&callback=specialpost"></script>

...会给我一个 div ,包含标题(包括链接)和标有“特殊”的所需数量的帖子的内容,但我在尝试的中途有点困惑。

我正在使用 jsonviewer 以可理解的树状形式查看我的博客的 json 代码,我猜测如果每个帖子的 URL 存储在 [] entry 内部的某个位置,那么博客本身的 URL 可能存储在 [] link 内部的某个位置。

问题:我说的对吗?
[] link 包含 4 个条目:{}0 {}1 {}2{}3它们中的每一个又包含 3 个条目:
  • rel 分别设置为 "http://schemas.google.com/g/2005#feed" "self" "alternate""hub"
  • type 设置为前两个的 "application/atom+xml" 和第三个的 text/html - 未为 {}3 定义
  • href 设置为"http://MYBLOG.blogspot.com/feeds/posts/default"(后面的 ?alt=json 为我们提供了相同 json 代码的 URL
    我进入 jsonviewer 以获得树状 View )"https://www.blogger.com/feed/1234567890123456789/posts/default?alt=json"(我想,那个 19 位数字是一些机器生成的数字名称
    谷歌已分配给我的博客)"http://MYBLOG.blogspot.com""http://pubsubhubbub.appspot.com" 分别。

  • 我想我要的是 {}2
    问题:我又是对的吗?如果是这样,我如何声明 var myblogUrl 的值设置为存储在该 href 条目中的 {}2

    最后但同样重要的是 :其他三个条目是做什么用的?存储在条目 href 中的 {}0 类似于将您带到一种订阅页面的页面,您可以在其中选择您想订阅相关博客的方式。真的是这样吗?

    最佳答案

    根据 link 的 ATOM 规范元素(引用http://atomenabled.org/developers/syndication/#recommendedEntryElements)

    link - Identifies a related Web page. The type of relation is defined by the rel attribute. An entry is limited to one alternate per type and hreflang. An entry must contain an alternate link if there is no content element. More info here.



    因此,link 中的 URL条目将根据提出的请求不断变化。您必须使用 JavaScript split获取主页值的函数 -
    var myblogUrl = json.feed.link[0].href.split('feeds')[0];
    

    注:如果您使用类型为 myblog.blogspot.com 的 URL 请求提要,这将起作用。 .但是,如果您从 blogger.com 请求提要(例如 - https://www.blogger.com/feeds/596098824972435195/posts/default/-/android?alt=json )然后必须对此进行更改。

    关于javascript - 通过 json 检索到的 Blogger 主页 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41908867/

    相关文章:

    javascript - 如何重用可能发生变化的JSON数据?

    ios - 在 Swift Alamofire 中写入的 JSON 类型无效

    blogger - 如何删除博客页面底部的灰色条?

    javascript - FabricJs - 饼图的径向渐变

    php - 缓存 JSON : Apache, PHP、jQuery

    javascript - 表单上的两个提交事件处理程序。一个必须阻止另一个

    html - 如何从 Blogger 博客中删除 Facebook 评论插件

    css - 如何修复我的博客站点中的 AMP 样式表错误?

    javascript - 从给定的可变文本中的节点 HTML 中获取文本

    javascript - 将动态 HTML 字段数组中的值减少到最紧凑的形式