Startpunkten

This commit is contained in:
2026-04-02 20:21:22 +02:00
commit edeab146f0
5 changed files with 214 additions and 0 deletions

37
admin/oauth-handler.php Normal file
View File

@@ -0,0 +1,37 @@
<?php
if (!defined('ABSPATH')) exit;
function sro_handle_oauth() {
if (!isset($_GET['page']) || $_GET['page'] !== 'sro') return;
if (!isset($_GET['oauth'])) return;
if (!isset($_GET['code'])) return;
$client_id = get_option('sro_client_id');
$client_secret = get_option('sro_client_secret');
$redirect_uri = admin_url('options-general.php?page=sro&oauth=1');
$response = wp_remote_post("https://accounts.spotify.com/api/token", array(
'body' => array(
'grant_type' => 'authorization_code',
'code' => $_GET['code'],
'redirect_uri' => $redirect_uri,
'client_id' => $client_id,
'client_secret' => $client_secret
)
));
if (is_wp_error($response)) return;
$data = json_decode(wp_remote_retrieve_body($response), true);
if (isset($data['access_token'])) {
update_option('sro_access_token', $data['access_token']);
update_option('sro_refresh_token', $data['refresh_token']);
update_option('sro_token_expires', time() + 3500);
}
wp_redirect(admin_url('options-general.php?page=sro'));
exit;
}
add_action('admin_init', 'sro_handle_oauth');

55
admin/settings.php Normal file
View File

@@ -0,0 +1,55 @@
<?php
if (!defined('ABSPATH')) exit;
function sro_menu() {
add_options_page(
"Spotify Recent",
"Spotify Recent",
"manage_options",
"sro",
"sro_page"
);
}
add_action('admin_menu', 'sro_menu');
function sro_page() {
$client_id = get_option('sro_client_id');
$client_secret = get_option('sro_client_secret');
if (isset($_POST['sro_save'])) {
update_option('sro_client_id', sanitize_text_field($_POST['client_id']));
update_option('sro_client_secret', sanitize_text_field($_POST['client_secret']));
echo "<div class='updated'><p>Saved.</p></div>";
}
$redirect_uri = admin_url('options-general.php?page=sro&oauth=1');
?>
<h1>Spotify OAuth Settings</h1>
<form method="post">
<label>Client ID</label><br>
<input type="text" name="client_id" value="<?php echo esc_attr($client_id); ?>" size="60"><br><br>
<label>Client Secret</label><br>
<input type="text" name="client_secret" value="<?php echo esc_attr($client_secret); ?>" size="60"><br><br>
<button class="button-primary" name="sro_save">Save</button>
</form>
<hr>
<h2>Step 2: Connect Spotify</h2>
<p>Add this redirect URI in your Spotify App:</p>
<code><?php echo $redirect_uri; ?></code>
<br><br>
<a href="https://accounts.spotify.com/authorize?client_id=<?php echo $client_id; ?>&response_type=code&redirect_uri=<?php echo urlencode($redirect_uri); ?>&scope=user-read-recently-played"
class="button button-primary">
Connect Spotify
</a>
<?php
}