2017年1月29日日曜日

TumblrをTwitterカードに対応させ、自動ツイートもIFTTTからdlvr.itに変更した

TumblrをTwitterカードに対応させる

Twitterカードに対応させる方法を調べてたらたまたまTumblrの対応のさせ方を見つけていた。
それはTumblrは設定・カスタマイズといったことをなにもしなくてもTwitterの検証ツールを通すだけでいいらしい。

そこでTumblrのHTMLをみたらたしかにTwitterカード向けの記述があった。ということでTwitterの検証ツールに通したので対応したはず。

TumblrからTwitterへの連携をdlvr.itに変更

Tumblrを更新したらTwitterに更新したことをIFTTTを使って自動ツイートするようにしてた。IFTTT経由でツイートするとIFTTTの短縮URLになる。これもTwitterカードは認識するのかな?と思いつつふとこのURLをクリックしたらTumblrのページが開かなかった。

TumblrのURLに日本語が含まれていてそれをうまくデコードできていないみたい。でもこれまでうまくいかないという話は聞かないなと思ってたのでちょっと確認をした。
Windows 10のEdgeだとURLがおかしくなってIFTTTの短縮URLをクリックしてもTumblrのページが表示されないけれど、chromeで同じ短縮URLを開くとTumblrのページが表示された。Edgeだとうまくいかないみたい。

たぶんIFTTTは悪くなくてEdgeの方がだめなんだろうけどこうなってしまうのなら別の手を考えるしかない。といってもそんな大げさのことではなくTumblrを更新したらdlvr.itで自動ツイートするように変更した。

ただdlvr.itの短縮URLに日本語が含まれていても大丈夫なのかはまだ検証していないのでこれでいいのかはまだわからない。



2017年1月28日土曜日

dlvr.itでtwitterに自動投稿してもtwitter cardがうまく表示されなかったのは設定のせいかもしれない

dlvr.itによる投稿でTwitterカードが表示されないことについて


dlvr.itでTwitterに自動投稿したけれどカード表示されなかった。ただ画像だけが表示されて概要が表示されないのだ。

で、いろいろ調べたところdlvr.itの設定にある「Enable Photo Posting」や「Post As Photo」のせいかもしれない。これはデフォルトでオンになっている。
これはたぶん投稿した記事内になる画像を自動で付加してるものみたい。

WordPressで投稿した記事に画像がないときFaviconの画像が表示されるが概要は表示されない。画像があるときはその画像が表示れてやはり概要は表示されない。
どちらもTwitterカードの形式になっていない。

また全く別のブログも書いていてそれもTwitter Cardsに対応させたのだけど、こちらは全体にほぼ画像がない。
このブログの場合、記事に画像がないときはTwitterカードがちゃんと表示される。しかし、記事に画像があるときはその画像が表示されて概要は表示されなずTwitterカードの形式になっていない。

このことからdlvr.itが自動的に投稿した記事から画像を取り出してTwitterで表示させようとしているように見える。そしてこういう形で画像を付加するとTwitterカード形式での表示にならない。

ということでdlvr.itの「Enable Photo Posting」「Post As Photo」の設定のせいでTwitterカード形式で表示されないのではないかということになる。

とりあえず両方の設定をオフにした。これでうまくいくのかはまだ実践していないのでわからない。厳密にどちらの設定の影響なのか調べたいところだけどテスト投稿を頻繁にするわけにもいかないので機会待ちの状態だ。

トラッキングのためのパラメータ付加がTwitterカードに影響するのか


もうひとつdlvr.itがトラッキングのためのパラメータをつけることがTwitterカード形式で表示されることに影響するかもしれないのだけどなんだかすっきりしないでいる。

一方のブログに書いた投稿のURLにトラッキングのためのパラメータがついたものをTwitterの検証ツールで試すとエラーになってしまう。
だけど他方のブログではトラッキングのためのパラメータをURLに付加していてもエラーにならない。

これにはどんな違いがあるのかわからずにいる。とりあえずどちらもトラッキングのためのパラメータを付ける設定にして様子を見ることにする。こちらもまだ実践していないので正確なことは言えない状態だ。

追記:

上記の設定で画像は表示されなくなったがTwitterカードの表示はされなかった。こんどはトラッキングのためのパラメータを付加しない設定で試してみる。
ちなみに過去のIFTTTで投稿されたツイートを改めて見てるとTwitterカードがちゃんと表示されていた。過去のツイートもTwitterカード表示されるんですね。

さらに追記:

Twitterカード形式で表示されない原因が判明。それは
に書いた。


2017年1月23日月曜日

ブログからツイッターへの連携をIFTTTからdlvr.itに変更した

運営してるサイトを更新したらツイッターに更新したことをツイートする、っていうのは今は当たり前のことといえるんでしょうね。でも自動でツイートするとなるといろいろな手段があってどの方式にするか悩みどころ。

ずいぶん前にdlvr.itを使っていたけどIFTTTに切り替えてました。なぜそうしたのか覚えてない。せっかくのこのブログの意味が無いね。

IFTTTから切り替えた理由

で、先日ブログ更新したことの自動投稿をIFTTTからdlvr.itに戻した。理由はGoogle+にも投稿できるから。
ブログ更新情報をGoogle+へ自動投稿するためだけにHootSuiteを使っていた。だけどときどきログインしないと投稿されないときがあったので使うのをやめた。本来の使い方とはちがうからしかたがない。

Google+へ投稿する機能があるサービスは少なく、あっても有料なことが多い。だけど最近ふとdlvr.itを思い出して確認してみたらGoogle+への投稿が普通にできることがわかったので切り替えたというわけ。

IFTTTは面白い仕組みだし有効活用したいんだけど今のところ自分にとっていい使い方が見つかっていない。

dlvr.itの初期設定

基本設定はウィザード形式で簡単に行える。

  1. dlvr.itのアカウントをとる
  2. ブログのFeedのURLを入力する
  3. Twitterアカウントを入力し認証する。
  4. Google+アカウントを入力し認証する。

これだけ。ただTwitter Cardsへの対応するためには少し設定を変える必要があった。

Twitter Cardsに対応するための設定

※2017年1月27日追記:以下の設定に関して書いてることはちょっと違いがあるみたいなので別の投稿(dlvr.itでtwitterに自動投稿してもtwitter cardがうまく表示されなかったのは設定のせいかもしれない)に記述する。

設定を変える前の最初の投稿はTwitter Cardsが認識されなかった。ただTwitter Cards表示用に指定した画像はツイッターの画像添付の形式で表示された。

dlvr.itの短縮URLでは認識されないのかと思って短縮されない設定にしてみたけど変化なし。

そこでTwitter Cardsの検証ツールでTwitterに投稿されたURLを確認してみたところエラーになった。じつはURLにdlvr.itのトラッキング用パラメータがついていてこれがあるとTwitter Cardsに認識されないことがわかった。ということでこのトラッキング用パラメータがつかないように設定を変更した。まだ試していないけどこれで大丈夫のはず。

このトラッキング用パラメータを外すにはFeedやTwitter、Google+の各個別設定のところではなくルート設定から行う。あるFeedからソーシャルサービスへの連携の単位をdlvr.itはルートと表現してる。

dlvr.itアカウントをメールアドレスで取ったかTwitterアカウントで取ったかで違う?

ただこのトラッキング用パラメータの設定があるのはdlvr.itにメールアドレスでアカウントをとった場合で、ツイッターアカウントからこのアカウントをとるとこの設定はないみたい。


その他の設定

Twitter、Google+各投稿の頭に「トピックス更新:」という文字列を付加するようにした。ブログ記事のタイトルだけ投稿されるよりもブログ更新情報であることを明確にするため。
これはルート設定からもできるしTwiiter、Google+ごとの個別設定からもできる。


2017年1月22日日曜日

WordPressで運用している個人サイトをTwitter Cards対応にした

先日、自分が運営してる個人サイトをTwitter Cardsに対応させました。

一度ずいぶん前にTwitter Cardsに対応させようとして調べたらFacebookがどうのこうのとあって面倒そうだったのでやめちゃいました。Facebookのアカウントをとる気がないし。

で、最近ふとやっぱりなんとかならないかなと思ってもう一度調べたら別にFacebookとは関係なく対応できることがわかりました。Facebookの仕組みも使うことができるってだけであったのでした。しかもHTMLのMETAタグを数行追加するだけだし。

とはいえちゃんとやろうとするとやはりそれなりに手間がかかりますね。その記録を書きます。WordPressでの対応のさせ方となります。あと比較的簡単なことであればプラグインなしで対応せたいのでプラグインは使っていません。

Twitter Cardsには数種類あるけど今回は一番シンプルなSummaryにしました。
twitte.com → 開発者 → Learn about discovering and embedding Tweets → Twitter Cards → Learn More about Twitter Cards → Summary Card
によると以下の5行を追加するだけ。

<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@ツイッターユーザー名" />
<meta name="twitter:title" content="タイトル" />
<meta name="twitter:description" content="概要" />
<meta name="twitter:image" content="表示する画像のURL" />

twitter:card

<meta name="twitter:card" content="summary" />
summaryはTwitter Cardsの種類なのでそのまま書くだけ。

twitter:site

<meta name="twitter:site" content="@ツイッターユーザー名" />
ツイッターユーザー名も自分のtwitterのユーザー名を書くだけ。

twitter:title

<meta name="twitter:title" content="タイトル" />
タイトルは記事のタイトルなのでWordpressならget_the_title()を使えばいいんだけどトップページのときはサイトのタイトルにするためにbloginfo('name')にします。
と書いてから気づいだんだけどひょっとしてbloginfo()を使わなくてもget_the_title()でもいいのかな?
if(is_home()) {
 $title = get_bloginfo('name');
} elseif(is_single()) {
 $title = get_the_title($post->ID);
} elseif(ispage()) {
 $title = get_the_title($post->ID);
} else {
 $title = get_bloginf('name');
}
<meta name="twitter:title" content="<?php echo $title; >" />

twitter:description

<meta name="twitter:description" content="概要" />
概要は個人サイト構築時にget_meta_description()というのを作成していたのでそれを利用。Wordpressの本だったか検索して見つけたかどっちだったか忘れましたがそれを自分のサイトに合わせて変更したものを使ってます。
これはdescriptionを記事、固定ページ、カテゴリページ、などにあわせた内容を返す関数をfunction.phpに記述してあります。

そのまま使うだけのつもりだったんですが一言書いた後にYouTubeへのリンクを書いた記事があってそれだとそのURLが表示されてしました。それではまずいだろうとURLを削除する行を一行追加しました。

このURLを削除するってPHPやWordpressの関数にありそうでないんですね。検索しても見つけられませんでした。HTMLのタグを消す関数はあるみたいですが。
で、PHPの置換関数で削除したのですがURLの正規表現を検索するとなかなか複雑。ちゃんと意味を理解してから使いたかったのですが解読するのが面倒だったので自分なりの簡易的な正規表現を使うことにしました。厳密な表現をする必要はないので。

とりあえず
$str = preg_replace('^https?://[\w./?=&%-]+^', '', $str);
こんな感じで。もちろんこの前にstrip_tags()などの処理を行ってます。

if(is_home()) {
 $description = get_bloginfo('description');
} elseif(is_single()) {
 $description = get_meta_description(); /* 自作関数 */
} elseif(is_page()) {
 $description = get_meta_description(); /*自作関数 */
} else {
 $description = get_bloginfo('description');
}
<meta name="twitter:description" content="" />

twitter:image

<meta name="twitter:image" content="表示する画像のURL" />
これも内容にあわせて何を指定するか調整しなければいけません。
個別記事以外はサイトをイメージした画像、例えばロゴとかFaviconとかを表示させます。
個別記事のときがちょっと面倒でアイキャッチ画像があればそれを、なければ記事に貼り付けた最初の画像を、なければサイトのイメージ画像にします。

サイト構築時に「記事の最初の画像」を表示するコードを作ってあったのでそれを使います。これは検索してweb上で見つけたものを使ってます。
get_children()とwp_get_attachment_image_src()を使ってURLを得ています。

if(is_home()) {
 $image = get_template_directory_uri() . '/images/XXXXXXXX.jpg';
} elseif(is_single()) {
 if(has_post_thumbnail()) {
  $image = wp_get_attachment_image_url(get_post_thumnail_id(), 'medium');
 } else {
  $attachments = get_children(
    "post_parent=$post->ID&post_type=attachment&post_mime_type=image");
  $att_images = array_reverse($attachments);
  $att_image  = array_shift($images);
  if($att_image) {
   $image = wp_get_attachment_image_url($att_image->ID, 'medium');
  } else {
   $image = get_templage_directory_uri() . '/images/XXXXXXXX.jpg';
  }
 }
} elseif(is_page()) {
 $image = get_template_directory_uri() . '/images/XXXXXXXX.jpg';
} else {
 $image = get_template_directory_uri() . '/images/XXXXXXXX.jpg';
}
<meta name="twitter:image" content="" />

コードのまとめ

上記のコードで無駄があるように見えると思いますがmetaタグごとに記述したからでこうなったのであって実際にはif文をひとつにまとめて記述しています。
if(is_home()) {
  $title = get_bloginfo('name');
  $description = get_bloginfo('description');
  $image = get_template_directory_url() . '/images/XXXXXXXX.jpg';
} elseif(is_single()) {
 $title = get_the_title($post->ID);
 $description = get_meta_description();
 ...
のように。

このコードをtwittercard.phpとして保存し、header.phpのの間に
<?php get_template_part('twittercard'); ?>
を追加することでTwitter Cardsに対応できました。

Twitterに申請

で、ただ上記のmetaタグを入れただけではだめでTwitterに申請しないといけないらしいので早速実行した。

うまく表示されるか確認することができるページがあるのでそこで確認。
twitte.com → 開発者 → Learn about discovering and embedding Tweets → Twitter Cards → Learn More about Twitter Cards → validator tool (日本語のページなら:検証ツール)

以前はエラーがなければ申請する必要があったらしいけど、現在はこの検証ツールで正常に表示されるだけでOKになる。たぶん申請の数がものすごく多くて承認作業が大変になったからじゃないだろうか。

Twitterに投稿して実際の表示も確認できたのですべての作業はこれで終わりました。




2017年1月15日日曜日

3年ぶりの更新その2 自分のモバイルの現状

久しぶりの更新ということで、現状確認2回目モバイル編。といってたいしたことないけど。

スマートフォン

前まではF-12CとイオンSIMを使っていたけど、今はXPERIA Z SO-02Eとb-mobile おかわりSIMとなっている。
スマートフォンは買い替えた(中古)。SIMはb-mobileの都合でイオンSIMからおかわりSIMへとある意味自動的に変更。正確には申込みが必要だったけど手数料とかはなし。

タブレット

去年、BIGカメラ専売のSG080iBKをアウトレットで購入。Twitterやちょっとホームページ見るのにスマホだと小さいしPC起動するのはなんか大げさだしということで買った。
だけどWindows10のアップデートをしてしばらくしてからタッチパネルが反応しなくなって困ってる。USBポートにキーボードやマウスをつなぐと使えるのでそれで操作してる。

ただ自分の使い方だとタブレットは今ひとつだった。こうしてちょっとしたブログを書くときにも使えたらと思っていたけどそれをやるには画面が少し狭いことやソフトキーボードを使うとなるとちょっとやる気がおきない。

できれば2in1タブレットPCがほしいなと思っている。


2017年1月14日土曜日

3年ぶりの更新 自分のPC関連の現状

このブログをいつの間にか更新しなくなって気づいたら3年も経ってた。

PCハードの現状

3年経ったけれどハードはほぼそのまま。
たぶんデュアルモニターのひとつをフルHDにしたこととUSB3.0拡張カードをつけた。
あとHDDを1TBのものに交換し、ファイルのバックアップ用にUSB外付けHDD1TBのものもつけた。
マウスの調子がわるくなったので交換した。
プリンターも購入した。

PCソフトウエアの現状

Windows 10にアップグレードして最新バージョンにしてある。
インターネット全盛の今アプリはあんまり入れてない。

ネット上のサービス

OneDriveとかGoogle Driveとかはそれなりに使ってる。TwitterとかIFTTとかいったものもそれなりに使ってる。
現在はレンタルサーバー上にWordpressをインストールして使っているのがメインだけど、このブログやTumblrなども使っている。

ネットワーク

現在はWiMAXのホームルータを使っている。

予定

なんとか自分のPC関連の記録として再開したいと思う。