Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin stopped working at Strato #21

Closed
possible-is opened this issue Mar 9, 2024 · 12 comments
Closed

Plugin stopped working at Strato #21

possible-is opened this issue Mar 9, 2024 · 12 comments

Comments

@possible-is
Copy link

Dear Sylvain,
i have used your very helpful plugin for a website that is hosted on Strato (https://www.strato.de) and for reasons i cannot comprehend, it stopped working. I can paste a vimeo Url into the field, but nothing happens and if save the page then, the embed-field disappears after reloading the panel page.

Since this came to light while updating the kirby version from 3.9.8.1 to 4.1.1 i was wondering if that would be the issue, but i have not being able to make the plugin work with older kirby versions.

I tested the setup (kirby starterkit with the embed plugin) on my own server (Hetzner) and it worked fine with kirby 3.9 and 4.1.1. So the reason seems to be located in a difference between the 2 hoster.

The only real difference and infos that i have are these:
php versions: Hetzner (working): 8.2.16 / Strato (not working) 8.2.15
If i use on Strato kirby v4.1.1 there is no error message when i paste a vimeo URL (for example: https://vimeo.com/224201603) and nothing changes. If i save the page then and reload, the Embed field is gone.
If i use kirby 3.9.8.1 i get an error while pasting the Url: this.isValidUrl is not a function

Other than that, i am pretty unsure what causes the problem... Have you heard anything about this?
I would be happy to use the plugin on the website :)

Greetings,
Matthias

@possible-is
Copy link
Author

Update:
I did use an old version of the Embed Plugin. After updating to the current version (1.1.2) it is still not working, but i get an error message with kirby 4.1.1: Sync failed

@sylvainjule
Copy link
Owner

If I get this right, with 1.1.2 and Kirby 4.1.1 it is working locally on a starterkit but not remotely? Does the console log anything when the Sync failed message shows?

@possible-is
Copy link
Author

possible-is commented Mar 9, 2024

Hello Sylvain, thanks for getting back. Both setups are remote. One is on Strato for a client and the other is on Hetzner, which is my personal hoster.
I am using Firefox with an inspector and get nothing when i paste the Url and get the error message...

Bildschirmfoto 2024-03-09 um 17 35 11

When i do the same thing on my personal Webspace, it works but i get a ton of console messages:

Bildschirmfoto 2024-03-09 um 17 37 47

@sylvainjule
Copy link
Owner

  • Does it work if you paste another link, for example a youtube video? Or does the sync also fail?
  • The field makes an API call to fetch the embed data, can you try dumping kirby()->site()->getEmbedData('https://vimeo.com/224201603') anywhere on your website, what does it return?

(the warnings on your 2nd screenshot are caused by Vimeo's iframe, so nothing to do with the plugin itself)

@possible-is
Copy link
Author

  1. I tried a youtube link (https://youtu.be/SGwCjJkaG50?si=-woDV06ABtuu7HeV) and this worked
  2. If i var_dump for the EmbedData, i get this return:

array(2) { ["status"]=> string(7) "success" ["data"]=> array(17) { ["title"]=> string(18) "Verify to Continue" ["description"]=> NULL ["url"]=> object(GuzzleHttp\Psr7\Uri)#321 (8) { ["scheme":"GuzzleHttp\Psr7\Uri":private]=> string(5) "https" ["userInfo":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["host":"GuzzleHttp\Psr7\Uri":private]=> string(9) "vimeo.com" ["port":"GuzzleHttp\Psr7\Uri":private]=> NULL ["path":"GuzzleHttp\Psr7\Uri":private]=> string(10) "/224201603" ["query":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["fragment":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["composedComponents":"GuzzleHttp\Psr7\Uri":private]=> string(27) "https://vimeo.com/224201603" } ["tags"]=> array(0) { } ["image"]=> NULL ["feeds"]=> array(0) { } ["code"]=> NULL ["width"]=> NULL ["height"]=> NULL ["aspectRatio"]=> NULL ["authorName"]=> NULL ["authorUrl"]=> NULL ["providerIcon"]=> NULL ["providerName"]=> string(5) "Vimeo" ["providerUrl"]=> object(GuzzleHttp\Psr7\Uri)#357 (8) { ["scheme":"GuzzleHttp\Psr7\Uri":private]=> string(5) "https" ["userInfo":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["host":"GuzzleHttp\Psr7\Uri":private]=> string(9) "vimeo.com" ["port":"GuzzleHttp\Psr7\Uri":private]=> NULL ["path":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["query":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["fragment":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["composedComponents":"GuzzleHttp\Psr7\Uri":private]=> NULL } ["publishedTime"]=> NULL ["license"]=> NULL } }

thanks already for taking the time...

@possible-is
Copy link
Author

If i do it on my other testsite where everything works, i get this result:

array(2) { ["status"]=> string(7) "success" ["data"]=> array(17) { ["title"]=> string(31) "Tired of Waiting (detail), 2017" ["description"]=> string(112) "Detail of "Tired of Waiting", Watercolour, glass, audio, clock mechanism. Installation at Porcino, Berlin, 2017." ["url"]=> object(GuzzleHttp\Psr7\Uri)#322 (8) { ["scheme":"GuzzleHttp\Psr7\Uri":private]=> string(5) "https" ["userInfo":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["host":"GuzzleHttp\Psr7\Uri":private]=> string(9) "vimeo.com" ["port":"GuzzleHttp\Psr7\Uri":private]=> NULL ["path":"GuzzleHttp\Psr7\Uri":private]=> string(10) "/224201603" ["query":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["fragment":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["composedComponents":"GuzzleHttp\Psr7\Uri":private]=> NULL } ["tags"]=> array(0) { } ["image"]=> object(GuzzleHttp\Psr7\Uri)#396 (8) { ["scheme":"GuzzleHttp\Psr7\Uri":private]=> string(5) "https" ["userInfo":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["host":"GuzzleHttp\Psr7\Uri":private]=> string(14) "i.vimeocdn.com" ["port":"GuzzleHttp\Psr7\Uri":private]=> NULL ["path":"GuzzleHttp\Psr7\Uri":private]=> string(91) "/video/643199910-b756859160e836ba1fd72204fe691868b15ad5755a089eb2be168a0963870bd3-d_295x166" ["query":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["fragment":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["composedComponents":"GuzzleHttp\Psr7\Uri":private]=> NULL } ["feeds"]=> array(0) { } ["code"]=> string(225) "

Here is the video shown

["authorName"]=> string(15) "Anna Szaflarski" ["authorUrl"]=> object(GuzzleHttp\Psr7\Uri)#398 (8) { ["scheme":"GuzzleHttp\Psr7\Uri":private]=> string(5) "https" ["userInfo":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["host":"GuzzleHttp\Psr7\Uri":private]=> string(9) "vimeo.com" ["port":"GuzzleHttp\Psr7\Uri":private]=> NULL ["path":"GuzzleHttp\Psr7\Uri":private]=> string(13) "/user41889463" ["query":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["fragment":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["composedComponents":"GuzzleHttp\Psr7\Uri":private]=> NULL } ["providerIcon"]=> object(GuzzleHttp\Psr7\Uri)#391 (8) { ["scheme":"GuzzleHttp\Psr7\Uri":private]=> string(5) "https" ["userInfo":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["host":"GuzzleHttp\Psr7\Uri":private]=> string(14) "i.vimeocdn.com" ["port":"GuzzleHttp\Psr7\Uri":private]=> NULL ["path":"GuzzleHttp\Psr7\Uri":private]=> string(23) "/favicon/main-touch_180" ["query":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["fragment":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["composedComponents":"GuzzleHttp\Psr7\Uri":private]=> NULL } ["providerName"]=> string(5) "Vimeo" ["providerUrl"]=> object(GuzzleHttp\Psr7\Uri)#395 (8) { ["scheme":"GuzzleHttp\Psr7\Uri":private]=> string(5) "https" ["userInfo":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["host":"GuzzleHttp\Psr7\Uri":private]=> string(9) "vimeo.com" ["port":"GuzzleHttp\Psr7\Uri":private]=> NULL ["path":"GuzzleHttp\Psr7\Uri":private]=> string(1) "/" ["query":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["fragment":"GuzzleHttp\Psr7\Uri":private]=> string(0) "" ["composedComponents":"GuzzleHttp\Psr7\Uri":private]=> NULL } ["publishedTime"]=> NULL ["license"]=> NULL } }

@sylvainjule
Copy link
Owner

There's something Vimeo doesn't like about your server then. Can you run this somewhere:

$oembed_endpoint = 'http://vimeo.com/api/oembed';
$url = $oembed_endpoint . '.json?url=' . rawurlencode('https://vimeo.com/224201603') . '&width=640';

$embed = json_decode(curl_get($url));

dump($embed);

function curl_get($url) {
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    $return = curl_exec($curl);
    curl_close($curl);
    return $return;
}

What does it dump?

@possible-is
Copy link
Author

It dumps this very concerning message:

stdClass Object
(
    [error] => You have been banned.
    [link] => 
    [developer_message] => You have been banned. Contact Vimeo support at https://vimeo.com/help/contact and provide your public IP, 81.169.144.135, and code 'MW-BL' for more information.
    [error_code] => 3500
)

@possible-is
Copy link
Author

The strange thing is, that all the previously embedded videos are working....

@possible-is
Copy link
Author

I'm getting in touch with vimeo about this. Seems that this is not really an issue with the plugin itself. Thanks again for taking the time...

@sylvainjule
Copy link
Owner

The hosting is shared, right? Then another site probably made way too many requests to the Vimeo API and Vimeo implemented a (hopefully) 24 hour ban on the IP, which you share. Unfortunately nothing this plugin can do about it, you'd have to either try again tomorrow to check if the ban has been lifted or get in touch with Vimeo.

The already-stored videos aren't affected, only new API calls.

@possible-is
Copy link
Author

Vimeo got back to us:

Upon my investigation, it appears that this IP address may be associated with a shared provider or service of a hosting company (https://wordpress.org/plugins/vimeography/ ). This association could be the reason for the blockage, as it seems to have resulted from a high volume of API requests leading to the ban of the page/IP.

At this time, I advise against using this template until the issue of excessive usage is resolved. I suggest disabling this plugin or reaching out to the hosting website of this plugin to inquire about the IP address 81.169.144.135 being blocked due to rate limiting. They can also contact us for assistance in resolving this matter.

Looks like we got part of a different problem. freaky...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants