Simplicityの特徴 › フォーラム › 要望・機能追加など › 独自で外部リンクを作れないでしょうか?
- このトピックには7件の返信、2人の参加者があり、最後に
Moriにより11年、 2ヶ月前に更新されました。
-
投稿者投稿
-
-
2015年3月28日 8:39 AM #24847
Mori
ゲストいつもお世話になっています。
ブログカード機能の実装はありがたいのですが、はてぶ依存が気になって、利用はしていません。
ブログの更新に外部リンクがどうしても必要なのでShareHtmlメーカーのブックマークを利用していました。
https://dl.dropboxusercontent.com/u/2271551/javascript/sharehtmlmk.htmlただ難点はリンク作成の度にポップアップが表示され、手間なので、現在は下記の方法でワンボタンでリンク作成を行っています。こちらはプラグインbrowser shotとブラウザChromeの拡張機能Copy URL+の機能を利用しています。
http://webshufu.com/make-links-with-thumbnails/この度、書き込ませていただいたのは、こんな感じの機能を使って、はてブ依存せず、はてブのようなデザインが実現できないかと思ったからです。
コードには疎く、現在のやり方ですでに外部依存しているのかもしれませんが -
2015年3月28日 10:42 AM #24850
hidekichi
ゲスト◆参考情報として。
外部サイトの例えばmeta discription等を取得するというのはプログラム的には難しいわけではないのですが、セキュリティ的な問題で外部のファイルにアクセスできないサーバーがあったりして、Simplicityを色んな環境の人が使う事を考えると案外難しい問題ですよね。それでもアクセスできたりしちゃうんですけどね(Xdomainの場合)。PHP的な話をすると、file_get_contentsで目的のサイトのhtmlを取得できます。ただし allow_url_fopenがサーバーでonの時と言う条件です。php.iniがいじれてallow_url_fopenがonにできれば良いですが、前述した理由でonにできないサーバーもあったりします。
そういう時には、cURLと言うのを利用してfile_get_contentsと同様の操作をすることができます。
ウチのサイトですが、無料レンタルサーバーXdomainでfile_get_contentsが利用できない時の対処
こんな感じでイケます。
htmlが取得できたら任意のタグ部分を取り出すことも可能です。するとブログカードもスタイルするだけと言う感じになります。けどこういうのってPHPの知識も要りますし、htmlを取得したけどタグの中身はどうやって取り出すんだよとか、html取得したのに文字化けするじゃねーか、なんて事になるのが世の常です(笑)そこで、貼るだけの簡単なお仕事!WPの引用をリッチで快適に!とかを参考に独自にカスタマイズする必要があると思います。
上記参考ページでは、Goutte(グットと読むらしい)を使っていますが、環境的な問題で使えない人もいると思うのでPHP Simple HTML DOM ParserとかphpQueryとかでスクレイピングできれば、あとは整えるだけなのです。データが取得できればcssでデザインするだけですから独自にブログカードを作ることは可能です。
スクレイピングは相手がリバースプロキシを利用していたりキャッシュを利用しているようであれば別に問題が出る手段ではないのですが、引用の範疇を超えると勝手に利用するなと言われたり、サーバーに負荷をかけたりするので勘弁してくれと言われることもあります。常識を守って利用できたら面倒なことが楽にできたりするんですけどね。
上記参考サイトの「まとめ」あたりにそのことに触れています。 -
2015年3月28日 10:48 AM #24851
hidekichi
ゲスト他の参考サイト
WORDPRESSにスクレイピング機能をくっつけるちなみに、引用の範疇を超えるとGoogleなどにコピーサイトとして認識されたりして評価が落ちる場合があるので注意が必要です。近頃はPubSubHubbubなどで誰が最初に書いたかがすぐにわかってしまうのでなかなか難しい感じですね。
-
2015年3月28日 11:24 AM #24854
Mori
ゲスト>hidekichiさん
丁寧な解説ありがとうございます。
いろいろとやりようがあるんですね。それがわかったので助かりました。にしても、PHPのコードを見ると頭がくらくらしてきます。。。
根気がいりそうです。。。現状でも十分といえば十分なのかもしれません。考えてみます。ありがとうございました
-
2015年3月28日 2:31 PM #24867
わいひらキーマスターShareHtmlみたいに作るとしても、HeartRails Captureというサービスに依存することになります。
Browser Shotsを使うと、プラグインに依存することになります。
なので、どちらにしろ独自の外部リンクにはならないと思います。ShareHtmlのようにするにしても、HeartRails CaptureというWEBサービスを利用するので、それならはてなの方が大手なので信頼度も高いかと思います。
プラグインの場合は、僕はWordpress Popular Posts以外のプラグインに依存した機能は、今後付けないようにするつもりなので実装はできないです。(Popular Postsも出来れば使用しないで、独自でPVを数えるようにすれば良かったと今は思っています)後の手段としては、以下の2つがあります。
1.ページの表示時にWEBから情報を取得する
2.情報を取得しておいてキャッシュしておく1は、取得するのにコスト(取得時間など)がかかり、ページの表示時間が遅くなりサイトにとっても良くないと思います。hidekichiさんの書かれているように、サーバーによって動作がわからないということもありますし、相手のサイトに負荷をかけてしまうことにもなります。
2は、やるとしたら最も良いのかもしれませんが、機能の実装がかなり大変そうなので、無料のテーマにそこまで労力をかけたくありません。これも、1ほどではないですが、相手サイトに負荷をかけてしまいます。
ということで、外部リンクを表示する場合は、現状でははてなを利用した方法が最も手軽だったということでご理解ください。
はてな以外に、OGP情報を手軽に取得できる大手がやっているAPIなどがあれば、そういった時は機能追加するかもしれません。 -
2015年3月28日 4:33 PM #24869
hidekichi
ゲストこういうやつかな?
OGP(Open Graph Protocol)データ取得API(フリー) -
2015年3月28日 5:15 PM #24873
わいひらキーマスターまさにそういうやつです。あるんですね。
サポートや動作保証はいたしません。自己責任の範囲でお使いください。
現在はアクセス制限をかけておりません。利用状況を見て、アクセス制限やサーバ増強等考えます。
OGP(Open Graph Protocol)データ取得API■140noteただ、個人で運営されているようなので、不特定多数のブログからアクセスがあると、迷惑をかけてしまうかもしれません。
-
2015年3月28日 6:59 PM #24876
Mori
ゲスト>わいひらさん
ありがとうございます。
Share Htmlにしても外部依存なのですね。
どういう形がいいのかを考えてみます!
-
-
投稿者投稿
- トピック「独自で外部リンクを作れないでしょうか?」には新しい返信をつけることはできません。