一部のサイトでoneboxingがブロックされています

5月4日のアップデート以降、onebox プレビューに問題が発生しています。すべてのハイパーリンクが正常にプレビューボックスを生成できません。

ただし、これらのハイパーリンクは今日に至るまでメタサイトでは正常に動作していました。ようやくメタサイトで同様の*問題を持つハイパーリンクを見つけました。
*エラーコードは異なります

ご教示ください。ご支援ありがとうございます。

https://medium.com/swlh/5-free-python-courses-for-beginners-to-learn-online-e1ca90687caf

「いいね!」 1

そのリンクを私のフォーラムで Onebox しようとしましたが、同じ結果になりました。
そのリンクを確認した直ちに気づいたのですが、2 つの例外が返されていました。このため、そのリンクは Onebox できません。そのため、Onebox でそのメッセージが表示されたのです。

「いいね!」 1

@jamie.wilson が Medium の Onebox に関する問題を調査しており、修正は現在進行中です。

「いいね!」 4

はい、これは 500 エラーを引き起こしている同じ問題のようです。この件、@jamie.wilson さんは対応されましたか?

「いいね!」 3

@SkyLin さんが提供したリンクは、再び Onebox として表示されています:

https://medium.com/swlh/5-free-python-courses-for-beginners-to-learn-online-e1ca90687caf

Medium 側でいくつかの変更が行われたことが原因で、当社の Onebox 生成におけるいくつかの課題が露呈しました。これらの問題は現在、当社側で対応が完了し、マージ済みです。これにより、Onebox 機能は全体的に(Medium に限らず)より堅牢なものとなりました。

「いいね!」 4

この問題はアップデート後に解決しました。ありがとうございます!

ただし、元の問題*は依然として残っています。これを解決するためにさらに何かできることはありますか?再度ありがとうございます。

*Onebox は meta では正常に機能しますが、同じ URL で私のサイトでは失敗します:

「いいね!」 1

さきほど、Medium のリンク 1 つと Udemy のリンク 2 つ、合計 3 つのリンクを私のサイトと meta の両方で試してみました。3 つとも、私のサイトでも meta でも正常に Onebox されました。

「いいね!」 2

親切な情報ありがとうございます。

Amazon onebox fails on my site, but works here で紹介された方法を試したところ、udemy に対しては 403 という応答コードが返されました。さらに、古いバックアップから サイト をクローンしてみても、同じ問題が発生しました。設定などの他の要因が原因ではないかと疑問に思っています。

ご教示ください。よろしくお願いいたします。

root@localhost:~# curl https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:-- 0* Trying 2606:4700::6810:4255:443... * TCP_NODELAY set
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--  0* Connected to www.udemy.com (2606:4700::6810:4255) port 443  (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3726 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [264 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Udemy, Inc.; CN=*.udemy.com
*  start date: Sep 10 15:45:40 2020 GMT
*  expire date: Oct 12 15:45:40 2021 GMT
*  subjectAltName: host "www.udemy.com" matched cert's "*.udemy.com"
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x55ba70848e10)
} [5 bytes data]
> GET /course/certified-kubernetes-application-developer/ HTTP/2
> Host: www.udemy.com
> user-agent: curl/7.68.0
> accept: */*
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* old SSL session ID is stale, removing
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
} [5 bytes data]
< HTTP/2 403
< date: Sat, 15 May 2021 09:15:50 GMT
< content-type: text/plain; charset=UTF-8
< content-length: 16
< x-frame-options: SAMEORIGIN
< cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< expires: Thu, 01 Jan 1970 00:00:01 GMT
< cf-request-id: 0a10e892d400000ac0a696a000000001
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< set-cookie: __cf_bm=b04492251e1a16bfdad619155f03441f5707d134-1621070150-1800-AS6cROKp+jLfN9ubIJem+TuX5dANVYbshBzqeRTZhheBx6lOtfM8RPRDSGDLEObLD8tWwjbrp+D5Sh4RcCTXGNw=; path=/; expires=Sat, 15-May-21 09:45:50 GMT; domain=.udemy.com; HttpOnly; Secure; SameSite=None
< x-content-type-options: nosniff
< server: cloudflare
< cf-ray: 64fb4397bea70ac0-NRT
<
{ [16 bytes data]
100    16  100    16    0     0     10      0  0:00:01  0:00:01 --:--:--    10
* Connection #0 to host www.udemy.com left intact

「いいね!」 1

それはどこから来たのですか?1970 年?それは 50 年以上前ですよ。

「いいね!」 2

このコマンドのレスポンスから取得されます:

curl https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose

「いいね!」 1

そして、Amazon から 503 エラーコードを含むレスポンスが返ってきました。

root@localhost:~# curl https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438 -o deleteme.html --verbose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 162.219.225.118:443...
* TCP_NODELAY set
* Connected to www.amazon.com (162.219.225.118) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [4447 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [264 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=www.amazon.com
*  start date: Apr 26 00:00:00 2021 GMT
*  expire date: Apr 25 23:59:59 2022 GMT
*  subjectAltName: host "www.amazon.com" matched cert's "www.amazon.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global CA G2
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x55993f5fae10)
} [5 bytes data]
> GET /Deep-Learning-Python-Francois-Chollet/dp/1617294438 HTTP/2
> Host: www.amazon.com
> user-agent: curl/7.68.0
> accept: */*
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [177 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
} [5 bytes data]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
< HTTP/2 503
< server: Server
< date: Mon, 17 May 2021 01:37:18 GMT
< content-type: text/html
< strict-transport-security: max-age=47474747; includeSubDomains; preload
< x-amz-rid: 72RYS75V0EMTMX4RK38T
< vary: Content-Type,Accept-Encoding,X-Amzn-CDN-Cache,X-Amzn-AX-Treatment,User-Agent
< last-modified: Wed, 30 Sep 2020 23:54:00 GMT
< etag: "a6f-5b0909d09d600"
< accept-ranges: bytes
< content-length: 2671
<
{ [1139 bytes data]
100  2671  100  2671    0     0   3604      0 --:--:-- --:--:-- --:--:--  3599
* Connection #0 to host www.amazon.com left intact
root@localhost:~#

また、Jamie の更新コードにより、Amazon のワンボックスプレビューは現在正常に動作しています。更新前のプレビューについては、以下の画像をご参照ください。

「いいね!」 1

Amazonのリンク、よくできました。Udemyのリンクは今は動作していますか、それともまだ403エラーが出ていますか?私はOneboxで問題なく表示できています。

「いいね!」 1

再度ありがとうございます。

私のサイトでは、Udemy のすべてのハイパーリンクが機能しませんでした。

Discourse ベースの別のフォーラムを試してみましたが、同じエラーコード 403 が発生しました。

フォーラムサイト: https://forum.quantifiedself.com/

テスト 1: OK
Amazon Deep Learning with Python: Chollet, Francois: 9781617294433: Amazon.com: Books

テスト 2: エラーコード 500 で NG。このサイトはまだ最新バージョンにアップグレードされていないようです。
Medium https://medium.com/swlh/5-free-python-courses-for-beginners-to-learn-online-e1ca90687caf

テスト 3: NG、エラーコード 403 で、私の場合と完全に同じです。
Udemy https://www.udemy.com/course/certified-kubernetes-application-developer/

「いいね!」 1

私が知るすべての Discourse ベースのサイトをテストした結果は以下の通りです:

onebox サイト 1 サイト 2 サイト 3 サイト 4 サイト 5 サイト 6 サイト 7 サイト 8
Amazon OK OK OK OK OK OK OK OK
medium OK NG OK NG NG OK NG NG
udemy NG NG OK OK OK OK NG OK
場所* 東京 カリフォルニア州 カリフォルニア州 カリフォルニア州 カリフォルニア州 パリ カリフォルニア州 イングランド
アイルランド バージニア州 シカゴ
アフリカ アラスカ州

サイト 1. https://vip.studycamp.tw/
サイト 2. https://forum.quantifiedself.com/
サイト 3. https://discussions.udacity.com/
サイト 4. https://forum.uipath.com/
サイト 5. https://forums.envato.com/
サイト 6. https://rideabl.es/
サイト 7. https://blenderartists.org/
サイト 8. https://se23.life/

「いいね!」 4

あなたは幸運です。動作するのは amazon.com のみです。
他のすべての Amazon サイトでは、ワンボックスプレビューは機能しません。

「いいね!」 2

テスト対象のサイトが curl のユーザーエージェントをブロックしている可能性があります。Oneboxing プロセスは、対象とする URL に応じて、実際のブラウザのユーザーエージェントを使用します。現時点では、そのような場合に使用されるユーザーエージェントは以下の通りです:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15

-A フラグを付けて curl テストを実行してみてください。例:

curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15" https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose

そのコマンドをあなたの環境で実行した結果はどうなりますか?

それでも失敗する場合:

  1. これらのサイトに対して異常に大量の Oneboxing リクエストを実行していませんか?該当するサイトによって一時的にブロックされている可能性があり、適切な時間待機すれば動作し始める場合があります(これはサイト運営者の判断によるものであり、残念ながら私たち側で対応することはできません)。

  2. あなたのサーバーの所在地はどこですか?異なる場所にあるマシンでテストを実行することは可能ですか?本番サーバーではなく、個人のマシンからテストを行うだけでも、異なる結果が得られる可能性があります。

「いいね!」 4

アドバイスありがとうございます。

返却コードは依然として 403 です:

root@localhost:~# curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15" https://www.udemy.com/course/certified-kubernetes-application-developer/ -o deleteme.html --verbose
  % Total    % Received % Xferd Average Speed   Time    Time     Time  Current Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 2606:4700::6810:4155:443...
* TCP_NODELAY set
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0* Connected to www.udemy.com (2606:4700::6810:4155) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3726 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [264 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Udemy, Inc.; CN=*.udemy.com
*  start date: Sep 10 15:45:40 2020 GMT
*  expire date: Oct 12 15:45:40 2021 GMT
*  subjectAltName: host "www.udemy.com" matched cert's "*.udemy.com"
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign RSA OV SSL CA 2018
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x5591c76d8e10)
} [5 bytes data]
> GET /course/certified-kubernetes-application-developer/ HTTP/2
> Host: www.udemy.com
> user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15
> accept: */*
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [230 bytes data]
* old SSL session ID is stale, removing
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 256)!
} [5 bytes data]
< HTTP/2 403
< date: Mon, 17 May 2021 23:59:37 GMT
< content-type: text/plain; charset=UTF-8
< content-length: 16
< x-frame-options: SAMEORIGIN
< cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< expires: Thu, 01 Jan 1970 00:00:01 GMT
< cf-request-id: 0a1e5e6b920000952193363000000001
< expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< set-cookie: __cf_bm=3224e014d6b0b4eca1cf8a59c6c180928b2ffa0f-1621295977-1800-AU4UK/k3sl61kbMPYizcsl1TI7NAHkvE1mfjoKIPdrvGAJJeYUF8e72hQljXNwVTO+BcqfsAXxoiQDEy1cL+aVA=; path=/; expires=Tue, 18-May-21 00:29:37 GMT; domain=.udemy.com; HttpOnly; Secure; SameSite=None
< x-content-type-options: nosniff
< server: cloudflare
< cf-ray: 6510ccf28d0a9521-NRT
<
{ [16 bytes data]
100    16  100    16    0     0     10      0  0:00:01  0:00:01 --:--:--    10
* Connection #0 to host www.udemy.com left intact

はい、実行していました。ただし、クローンサイトは 20 日以上前にコンテンツを投稿しておらず、同じ問題が発生しています。

さらに、昨日言及した テスト表 に基づくと、サイト 2 とサイト 7 でも同じ問題が発生しており、これらサイトにおける Udemy 関連の投稿はこれが初めてであると考えています。

私のサーバーは日本に所在しています。本日の後半にはクローンサイトを米国などの他の地域に移動させてテストを行い、その後再度更新いたします。

更新:

  1. 11 時間経過しましたが、クローンテストサイトを東京からカリフォルニアに移動させても、依然として 403 が返されます。後ほどヨーロッパに移動させてテストを行い、明日再度更新いたします。
  2. ロンドンでも同じ 403 エラーコードが発生しました。

再度ありがとうございます。

「いいね!」 2

私の側でさらに少しテストを行いました。

北米の一般回線(ISP)からでも、北米の高級データセンターにホストされたマシンからでも、Udemy の URL に対して curl は正常に動作します。

しかし、人気のホスティングプロバイダー(北米)からは失敗し、別の人気のホスティングプロバイダー(ヨーロッパ)からも失敗します。

失敗した際に返されるコンテンツボディは以下の通りです。

error code: 1020

これは以下の情報から来ているものです。

Cloudflare のこの投稿では、彼らの 1020 エラーの意味と、それを解決するために取れる対策について説明されています。

https://community.cloudflare.com/t/community-tip-fixing-error-1020-access-denied/66439

「いいね!」 5

現在 2.7.0.beta8 です。何か参考になれば幸いです。

「いいね!」 2

新しいビルドでこの問題が解決され、Udemy のワンボックスプレビューが再び表示されるようになりました。どの部分が修正されたかはっきりしません。

「いいね!」 3