読者です 読者をやめる 読者になる 読者になる
  • - Facebook Page

  • - GOLE1

  • - Google+

  • - My Room

  • - 周辺風景1

  • - 周辺風景2

  • - Highway1

  • - Highway2

  • - Steam

  • - My site

  • - Profile

  • - 周辺風景3

2. 自分のブログページの RSS or ATOM が自動更新

この記事は『ブログとSNSの連携について』の一部です。
先にこちらの記事を確認されることをお勧めします。

なんかタイトルの日本語がおかしいな。まあいいか;´Д`)

´Д`)< この記事の内容

  • Websiteが提供する RSS, ATOM feedの探し方
  • Feed情報が無い場合は
  • Feed情報からとれる内容を確認する
  • Feed情報の注意点

Websiteが提供する RSS, ATOM feedの探し方

´Д`)< 大変かんたん

[方法1] その Siteのマニュアルやヘルプを確認する
大抵どこかに書いてある。はてなブログだとこの辺に。
[方法2] RSS情報を探してくれるサービスを使う
´Д`)< ここを使ってみる。W3C提供だから間違いない。

というわけでShortNoteのfeed情報を探してみよう。
確かShortNoteは公式に ATOM feedをサポートしていると書いて……ん?

”分かる人には分かる”な機能ですが「人気タブ」の内容を Atom フィードでも配信はじめました。

人気ノートの Atom フィードでの配信をはじめました - #ShortNoteアップデートのお知らせ

 ん、んん……?何かが見えたような……?

”分かる人には分かる”な機能ですが「人気タブ」の内容をallowAtom フィードでも配信はじめました。

人気ノートの Atom フィードでの配信をはじめました - #ShortNoteアップデートのお知らせ

人気Noteには言及されているけど最新Noteについては触れられてないよ!Σ(゚Д゚;
HTMLを参照すると最新Note情報提供用 ATOM feed が記載されているけど、「とりあえずある物を使ったらできた」レベルに下がってしまったか……仕事でやったらめちゃくちゃ怒られるやつだな ;´Д`) 趣味ではいいや

話が脱線した ;´Д`)
ShortNoteのfeed情報は [手順2]の方法で探すと https://www.shortnote.jp/feed/latest/atom.xml が見つかるのでこれを使う。

Feed情報がない場合は

;´Д`)< それは困った
一度、HTMLを解析してRSSを作成してくれるサービス(Page2Feed)を利用してみるといいかも。ほんの少しだけ解説するとこんな感じ。

Page2Feedとは

機能
指定したURLのHTMLを解析し、RSSとして読める形に変換してくれる
ただし、本来のRSS情報作成方法ではないため正しく変換できない可能性がある
使い方
RSS変換後のURLをメモしておき、RSSがあった場合にそのURLを入れる箇所に Page2Feedの変換後URLを指定する

これでダメだったら……急激に難易度が上がるため、ブログ記事数件程度では説明できないと思う;´Д`)

Feed情報から取れる内容を確認する

RSSなり ATOMは Text形式 fileなので、開いて中を確認することができる。
中はXMLで書かれている。ShortNoteの場合の例を上げると、以下のような感じ。

ShortNote Atom feed: https://www.shortnote.jp/feed/latest/atom.xml

タグ名 意味
entry 記事1件分
title 記事タイトル
published 公開日
updated 更新日
summary 概要 (本文の先頭から数十文字の内容)
name 投稿者ニックネーム
uri 投稿者プロフィールのURL
content 本文 (全内容)

 ShortNoteのATOM feedはこうなっているけれども、他のサイトも同様とは限らない。それぞれのサイトが提供しているFeed情報の内容を確認する必要がある。

Feed情報から今回必要な情報を確認しておく

今回やりたいことを実現するために必要な情報がFeed情報の中に揃っているか確認する。
今回やりたいことは2種類。

  1. Facebookへお知らせリンク投稿
  2. はてなブログへ全文投稿 (複製)

1に必要な最低限の情報は

  • 投稿者名
  • 投稿日
  • タイトル

2に必要な最低限の情報は

  • 投稿者名
  • タイトル
  • 本文

どの情報も取れそうなので大丈夫かな *´Д`)

 注意が必要な点

上記 ATOM feedを見ると分かるんだけど、ShortNoteが提供しているATOM feed全ユーザーを対象にした最新記事になっている。恐らくShortNoteのサイトポリシーによるものかな。
そしてはてなブログを含め、大抵のBlog siteはアカウントごとにFeed情報を提供している。つまり、その内容が個別ユーザーを対象にした最新記事になっている。

今回実現したいことは「自分の投稿のみを対象に別サイトと連携」したいので、ShortNoteの ATOM feedから情報取得したときに、まず自分の投稿が載っているかどうかをチェックする必要がある。個別ユーザーを対象にしたfeed情報なら、「そのfeedが更新された = 自分の新規投稿がある」と言えるんだけどね。

自分の投稿かどうかを確認したい場合、先のタグについての表から「nameタグにある情報だな`Д´)」となりそうになるが、nameタグの情報は使えないのだ;´Д`)
nameタグにはShortNoteの基本設定画面にあるニックネームが入れられている。
このニックネームは他の人と重複が許容されている。だからこの情報で自分の投稿かを判断すると、たまたま同じニックネームを付けた別の人の記事までSNSに投稿してしまうのだ。

じゃあどこで判断するのかというと、ユーザーIDを使う。ユーザーIDは、まず自分のProfile画面を開いて…

そのページの一番下側

 この矢印に書いてあるIDが誰とも重複しない自分を表すIDになる。この情報、ATOM feedに載っていないように見えるが、uriタグに自分のIDを含んだURLが入れられているので、この情報を使って判断すれば確実。