2017年2月8日水曜日

dlvr.itによるtwitterへの自動投稿でtwitterカード表示にならない理由がやっとわかった。大した理由じゃなかった。

どうしてもエラーが出てた

あるサイトだけ更新情報をdlvr.itでトラッキングのためのパラメータが付加された状態でtwitterに投稿してもtwitterカード表示されなくて困ってた。
twitterカード検証ツールでもトラッキングのためのパラメータがあるときはエラーになった。

Fetching the page failed because it's denied by robots.txt.

こんなメッセージが出る。robots.txtはWordpressで余計なクロールをされないようにしてあるけど記事や画像は弾いてないのに、というかrobots.txtって関係あるの?と思っていた。

さらに検索して調べてたらやっと原因がわかった。

Wordpressで余計なクロールをされないための記述は何年か前にいろいろ検索した結果を元に書いていた。その中ある指定がtwitterカードを表示させなくしていた。

Disallow: /*?*
Disallow: /*?

この記述だ。URLにパラメータを付加したものは弾くようになっている。dlvr.itがトラッキングのためのパラメータを付加したらこれで弾かれてたのでtwitterカードが表示されなかったわけだ。
twitterカードの表示にrobots.txtって影響あるんだとやっと理解した。

あらためてrobots.txtを確認してみるとちょっと過剰に制限していたみたい。なので上記の記述を無くしたのはもちろんもっとシンプルにした。

この修正をしたら過去の投稿も含めてtwitterカード表示されるようになった。わかってみれば大した理由じゃなかったわけだけどそのへん詳しくないから思い至らなかった。

これでおしまい

ということでtwitterカードに関してはこれですべて完了となりました。



2017年2月6日月曜日

tumblrを更新したらdlvr.itにtwitterにカード表示で投稿する方法を模索

まずは特に設定せずにtumblrの更新をdlvr.itを通してtwitterに投稿してみる

tumblrをtwitterカードに対応させるにはtwitterで認証させるだけでいい。tumblrには設定やカスタマイズは必要ない。

tumblrを更新したらdlvr.itでtwitterに自動投稿する。特に変わったことする必要はないが、dlvr.itの設定で「Post As Photo」はオフにしておいたほうが良さそう。

という調査結果をもとに設定などをした
その結果twitterカード表示されなかった。

tumblrのURLがリダイレクトされるのが原因なのか?

twitterに表示されるurlは「dlvr.it/DDDDD
twitter的には「t.co/TTTTT」
となっている。

これらを直接ブラウザにURLを貼り付けて表示させると「AAAAA.tumblr.com/post/NNNNN/BBBBB」
のようになる。
またRSSフィードを直接見るとURLは
「AAAAA.tumblr.com/post/NNNNN」
になっている。

上記URLをtwitterカード認証ツールに通すとうまく表示されるのは「AAAAA.tumblr.com/post/NNNNN/BBBBB」
だけで、他はエラーになる。エラーメッセージは
ERROR: Fetching the page failed because it resulted in too many redirects.
とある。
AAAAA.tumblr.com/post/NNNNN → AAAAA.tumblr.com/post/NNNNN/BBBBB
このリダイレクトがエラーになるのが一番の原因なのだろうか。

それでもdlvr.itを通したい

twitterに自動投稿するだけならdlvr.itを通さずにtumblrにもともとあるtwitter連携機能をオンにするだけでいいのだ。
ただこのtwitterにはほかのサイトの更新情報も投稿するので区別のために頭に「tumblr更新:」という文字列を加えたい。となるとやっぱりdlvr.itを通したい。

となるとtumblrのURLのリダイレクトをなくす方法があればいいことになる。tumblrの設定にはそんな項目はない。
しかしtumblrの各投稿のURLのパーマリンク(tumblrではフレンドリーURL)を自分で設定することができるのでそれをすればリダイレクトのないURLになるかもしれない。
と思って試したらそうではなかった。
AAAAA.tumblr.com/post/NNNNN → AAAAA.tumblr.com/post/NNNNN/BBBBB
となる。ただtwitterの認証ツールに通すとエラーにならない。

ここで本当のエラー原因らしきものがわかった。エラーしていたのはBBBBBの部分が日本語だったからみたい。

どうすることにしたか

BBBBBの部分は投稿内容からtumblrが自動で抜き出しているから日本語になるので英数字になるようにしなくてはいけない。
そのためにはtumblr投稿時にパーマリンク(フレンドリーURL)を自分で設定すればいい。これは手間が増えていまひとつすっきりしないけれどいまのところこれしかない。
tumblrではない別のサイトの更新時も毎回URLを英数字で決めていたのである意味慣れてはいるし。

どうなったか

カード表示になるときとならない場合がある。
どうやら画像があるとうまくいくがテキストのみだとカード表示にならない。
HTMLソースをみたらtwitterカードのためのコードがなかったのでこれがtumblrの仕様のようだ。

少し不完全だけどtumblrのtwitterカード対応の件はこれでおしまいにします。