「Internet Archive」への外部リンクブログカードが正常に表示されなくなった

Simplicityの特徴 フォーラム Simplicity2に関する話題何でも 「Internet Archive」への外部リンクブログカードが正常に表示されなくなった

  • このトピックには20件の返信、2人の参加者があり、最後にsimpfanにより3年、 6ヶ月前に更新されました。
20件の返信スレッドを表示中
  • 投稿者
    投稿
    • #44330
      simpfan
      ゲスト

      こんにちは。いつもお世話になってます。

      私はサイト上で、以前『寝ログ』でも紹介されていたWEBページ保存サービスの「Internet Archive」をよく利用しているのですが、テーマを最新版にアップデートしたところ、そのすべての外部リンクが、「This page is error.」になってしまうようになりました。リンク自体は正常に機能していて、アイキャッチ画像(キャプチャ)も表示されるのですが、ページタイトルなどが一切正常に表示されなくなっています。

      とりあえず現在は外部リンクの設定を「はてなカード」に設定することで一応は解決しているのですが、できれば今までどおり独自キャッシュのブログカードを利用したいので、対処法をお知らせいただければと思います。

      よろしくお願いします。

    • #44333
      わいひらわいひら
      キーマスター

      以前使用していたバージョンは幾つでしょうか?
      あと、v2.2.4では正常動作しますでしょうか。

      こちらでテストしてみたのですが、僕の環境では正常動作するようです。
      http://simplicity.wp.xdomain.jp/post-2206/
      エラーが出るURLとかできれば掲載していただいてよろしいでしょうか。
      あと、レンタルサーバー名とかも。
      できれば、環境や設定周りを見たいのでサイトのURLを掲載していただけると助かります。

    • #44342
      simpfan
      ゲスト

      こちらでも改めて検証してみたところ、Internet Archivesにhttp接続したページにリンクした場合は、正常動作することを確認しました。ただそれをhttpsで接続したページにリンクを張ろうとすると、やはり前述のエラーが出てしまいます。

      つまり、

      http://web.archive.org/web/~

      だと問題なく表示されるのが、

      https://web.archive.org/web/~

      だとすべてエラーになるということです。ただどちらも、前述のとおりリンクとアイキャッチは正常に動作します。

      これは2.2.4の時点では(2.2.3でも)発生していないエラーでした。

      また、私のサーバーはエックスサーバーなのでわいひらさんと同じだと思います。また、キャッシュ保持の設定やプラグインは利用していませんし、念のためすべてのプラグインを停止しても同じ症状でした。

      よろしくお願いします。

    • #44345
      simpfan
      ゲスト

      これがエラーのキャプチャです。

      https://goo.gl/f5UaV2

      上が

      http://web.archive.org/web/20160616192719/http://wp-simplicity.com/

      下が

      https://web.archive.org/web/20160616192719/http://wp-simplicity.com/

      の場合です。

      よろしくお願いします。

    • #44384
      わいひらわいひら
      キーマスター

      とりあえず、lib/open-graph.phpの以下をコメントアウトすれば、元には戻ると思います。
      add_action('http_api_curl', 'set_ecc_cipher_suites', 10, 2);

      もしくは、子テーマのfunctions.phpに以下のように書くか。

      function set_ecc_cipher_suites($handle, $r) {
      	return ;
      }

      #44262の方法を適用したら、今度はインターネットアーカイブが取得できなくなったようです。
      ここら辺の設定は、僕はあまり詳しくないので、解決方法を見つけないと、今のところ上記の方法で対応するしかないかもしれません。
      また調べてみます。

    • #44390
      simpfan
      ゲスト

      ありがとうございます。

      ともかくこの問題が私の環境固有のものでないことがわかりよかったです。
      とりあえずプログラムに疎い私としては、いちばん単純でわかりやすい解決策として、当面は「はてなカード」を代用することで凌ぎたいと思います。
      バージョンを下げてもいいのですが、それだとその他の修正も元に戻ってしまうので。

      よろしくお願いします。

    • #44391
      technote
      ゲスト

      http://www.harumaki.net/2015/01/25/php-redhat-centos_curl_ssl-connection-error/
      によるとv7.19.7のcurlが問題のようなので、それ以外ではなにもしないようにすると良いかもしれません。

      $info = curl_version();
      if ($info['version'] !== '7.19.7') {
      	return;
      }
    • #44406
      わいひらわいひら
      キーマスター

      上のコードは#44262の部分で言うと以下の関数部分の先頭部分に挿入すればよいのでしょうか?
      add_action('http_api_curl', function($handle, $r) {

    • #44419
      technote
      ゲスト

      以下の様な実装かと思います。
      パフォーマンス的には二番目のほうが良いです。

      function is_nss_curl() {
        $info = curl_version();
        return $info['version'] === '7.19.7';
      }
      function set_ecc_cipher_suites($handle, $r) {
        $info = curl_version();
        if (is_nss_curl() && isset($r['simplicity'])) {
          …
        }
      }

      or

      if (is_nss_curl()) {
        add_action('http_api_curl', 'set_ecc_cipher_suites', 10, 2);
      }
    • #44420
      technote
      ゲスト
      function set_ecc_cipher_suites($handle, $r) {
        $info = curl_version();
        if (is_nss_curl() && isset($r['simplicity'])) {
          …
        }
      }

      =>

      function set_ecc_cipher_suites($handle, $r) {
        if (is_nss_curl() && isset($r['simplicity'])) {
          …
        }
      }
    • #44426
      わいひらわいひら
      キーマスター

      ありがとうございます。
      とりあえず、こんな感じに修正してみました。
      https://github.com/yhira/simplicity2/commit/7616562c44e4803a590ef265291cab8da41cd28a

      修正後のテーマが以下。
      https://wp-simplicity.com/wp-content/uploads/2016/08/simplicity2-1.zip
      もし、エラーが出ている方があおられましたら試していただけると幸いです。

    • #44434
      technote
      ゲスト

      私の以下の環境では問題ありませんでした。
      環境1:ローカル、Vagrant(vccw)、WordPress v5.4.3、curl v7.19.7
      環境2:AWS、WordPress v5.4.3、curl v7.40.0

      しかしWordPress v4.6にアップデートするとcurl v7.19.7の環境で正常に動作しなくなります。
      HTTP APIに内部的な大きな変更がはいったためです。
      https://make.wordpress.org/core/2016/07/27/http-api-in-4-6/
      この影響でhttp_api_curlのアクションが使用できなくなりました。

      コードを見ましたが割り込める箇所がないためどうしようもなさそうです。
      https://core.trac.wordpress.org/ticket/33055#comment:73
      こちらでもhttp_api_curlが使用できなくなって困っている人がいるため、対応される可能性があります。

    • #44435
      technote
      ゲスト

      すみません。
      WordPress v5.4.3 => WordPress v4.5.3
      です。

    • #44436
      simpfan
      ゲスト

      わいひらさん、みなさん、ありがとうございます。

      さっそく修正後のテーマを導入してみたところ、私の環境では(Wordpress4.6でも)不具合は解消されました。

      参考までに言えばまだいくつかのサイト

      https://www.squarespace.com/

      などではエラーが出てしまうのですが、これは以前のバージョンから起きていたエラーですし、今回はともかくInternet Archiveが主題でしたので、これで利用し続けたいと思います。

      改めて、ありがとうございました。

    • #44454
      わいひらわいひら
      キーマスター

      みなさん、動作確認ありがとうございます。
      とりあえず、インターネットアーカイブの不具合は改善されたようでよかったです。
      technoteさん、解決方法感謝です!

      >technoteさん
      せっかく解決出来たのに、すぐにこんなバージョンアップが…。
      とりあえず、様子を見るしかなさそうですね;

      >simpfanさん
      https://www.squarespace.com/
      こちらのサイトは、僕のローカル環境でも、エラー取得を確認しました。
      とりあえず、後でいろいろ試してみたいと思います。

      その他にも、取得エラーになるページがあれば、よかったら貼り付けていただけると幸いです。いろいろあったほうが、問題の共通点を見つけられる可能性が高いので。
      実力不足などにより、必ず解決できるかはわからないのですが。

    • #44469
      simpfan
      ゲスト

      わかりました。

      他に私が見つけたものとしては、

      http://www.thinktheearth.net/jp/onesecond/contents.html

      http://incubator.sakura.ne.jp/Japan_gomi/index_01.html

      が以前からエラーを出しています。

      もしかしたら私の環境によるものかもしれませんが、少しでもお役に立てれば嬉しく思います。

    • #44471
      hidekichi
      ゲスト

      #44469のサイトはogpがありませんのでerrorと言うより取得できないだけかと思います。ここらはエラーメッセージを変更したほうが良いのかもしれませんね。
      アクセス自体は正常に行われて、ogp情報がないので取得できません = エラーという表示なだけかと思います。

    • #44473
      simpfan
      ゲスト

      なるほど、「ogp情報がない」という場合もあるんですね。
      私はそういった知識がまったくなく区別できませんでしたが、確かにもし可能ならエラーメッセージを分けていただければありがたいです。

      ただもちろん、そんな知識がまったくない私でも手軽にサイトが運営できるSimplicityにはもう既に頭が上がらないです。
      これからも少しずつ勉強しながら、その良さを最大限活かしていけたらと思います。

    • #44474
      hidekichi
      ゲスト

      例えばの話ですが、wp_remote_get()で取得できるのはogpだけではなく、他の要素も拾えるわけです。headタグの中身のパースが必要ですが、例えばそのサイトのtitleタグの中身とか。
      アドレスはすでにわかっているので、ogpが取得できない場合に、Simplicityがその箇所を、ブログカードではなく、

      <div class="noOGP">
        <a href="http://www.thinktheearth.net/jp/onesecond/contents.html">Think the Earth | 005-One Second <1秒の世界></a>
      </div>

      このように書き出した場合、

      サンプル: jQueryでブログカードっぽく装飾する | codepen

      こういうこともできなくはないと思うんですよね。やるかやらないかはわいひらさん次第です(笑)
      まぁ別にjQueryでする必要もなくアドレスそのまま表示でも良いかとは思いますし、現状のthis page error部分を違うメッセージにしても良いですが、何かしらのセレクタさえあれば後からでもブログカードっぽくはできます。

      アドレスそのままの場合でも、何かしら装飾したいと思う場合もあると思うので、セレクタ付きで出力されていると、加工は楽になることは間違いないです。

    • #44650
      わいひらわいひら
      キーマスター

      次のバージョンで、OGPタグがなくてもタイトルタグから外部ブログカードを作成できるように修正しました。
      次のバージョンで、とりあえず#44469のようなtitleタグがあるサイトからはブログカードが作成できるようになるかと思います。

    • #44689
      simpfan
      ゲスト

      最新版にアップデートしてみましたが、完璧ですね。
      いろいろと、ありがとうございました。

20件の返信スレッドを表示中
  • トピック「「Internet Archive」への外部リンクブログカードが正常に表示されなくなった」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)