get_opts_public();
$client_id = $o['gsc_client_id'] ?? '';
$client_secret = $o['gsc_client_secret'] ?? '';
$access_token = $this->get_valid_gsc_token();
// Google leitet nach dem Login an den WP-Rankify-Server zurück (GSC_RELAY_URL),
// der von dort sauber hierher weiterleitet – siehe Kommentar in der Hauptdatei.
$redirect_uri = AIJE_Lite_100::GSC_RELAY_URL;
$return_url = admin_url( 'tools.php?page=aije-lite&tab=gsc&gsc_callback=1' );
$oauth_state = wp_create_nonce( 'aije_gsc_oauth' ) . '.' . rtrim( strtr( base64_encode( $return_url ), '+/', '-_' ), '=' );
if ( isset( $_GET['gsc_connected'] ) ) { echo '
✓ ' . esc_html__( 'Google Search Console erfolgreich verbunden!', 'ai-json-extractor-auto-embed-lite' ) . '
'; }
if ( isset( $_GET['gsc_error'] ) ) { echo '' . esc_html__( 'Fehler beim Verbinden. Bitte prüfe Client-ID und Secret.', 'ai-json-extractor-auto-embed-lite' ) . '
'; }
if ( isset( $_POST['aije_gsc_save_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['aije_gsc_save_nonce'] ) ), 'aije_gsc_save' ) ) {
$o['gsc_client_id'] = sanitize_text_field( wp_unslash( $_POST['gsc_client_id'] ?? '' ) );
$o['gsc_client_secret'] = sanitize_text_field( wp_unslash( $_POST['gsc_client_secret'] ?? '' ) );
update_option( AIJE_Lite_100::OPT_KEY, $o );
$client_id = $o['gsc_client_id']; $client_secret = $o['gsc_client_secret'];
echo '✓ ' . esc_html__( 'Zugangsdaten gespeichert.', 'ai-json-extractor-auto-embed-lite' ) . '
';
}
echo '';
if ( $access_token ) {
echo '
';
$this->render_gsc_data( $access_token );
echo '
'; return;
}
// Schritt-für-Schritt Anleitung
echo '🔍 ' . esc_html__( 'Google Search Console verbinden', 'ai-json-extractor-auto-embed-lite' ) . '
' . esc_html__( 'Sieh direkt welche Keywords deine Artikel ranken, Klickzahlen und Positionen.', 'ai-json-extractor-auto-embed-lite' ) . '
';
$steps = array(
array( '1', __( 'Google Cloud Projekt erstellen', 'ai-json-extractor-auto-embed-lite' ), __( 'Öffne die Google Cloud Console und erstelle ein neues Projekt.', 'ai-json-extractor-auto-embed-lite' ), 'https://console.cloud.google.com/projectcreate', __( 'Google Cloud Console öffnen →', 'ai-json-extractor-auto-embed-lite' ), sprintf( /* translators: %s: example project name */ __( 'Projektname: z.B. „%s". Klicke dann auf Erstellen .', 'ai-json-extractor-auto-embed-lite' ), 'WP Rankify' ), '' ),
array( '2', __( 'Search Console API aktivieren', 'ai-json-extractor-auto-embed-lite' ), __( 'Aktiviere die Google Search Console API für dein Projekt.', 'ai-json-extractor-auto-embed-lite' ), 'https://console.cloud.google.com/apis/library/searchconsole.googleapis.com', __( 'Search Console API aktivieren →', 'ai-json-extractor-auto-embed-lite' ), sprintf( __( 'Klicke auf den blauen %s Button.', 'ai-json-extractor-auto-embed-lite' ), __( 'Aktivieren', 'ai-json-extractor-auto-embed-lite' ) ), '' ),
array( '3', __( 'OAuth-Zustimmungsbildschirm konfigurieren', 'ai-json-extractor-auto-embed-lite' ), __( 'Richte den OAuth-Zustimmungsbildschirm ein (nur einmalig nötig).', 'ai-json-extractor-auto-embed-lite' ), 'https://console.cloud.google.com/apis/credentials/consent', __( 'OAuth-Zustimmung einrichten →', 'ai-json-extractor-auto-embed-lite' ), sprintf( __( 'Wähle %1$s → App-Name eintragen → %2$s.', 'ai-json-extractor-auto-embed-lite' ), __( 'Extern', 'ai-json-extractor-auto-embed-lite' ), __( 'Speichern', 'ai-json-extractor-auto-embed-lite' ) ), '' ),
array( '3b', __( 'Testnutzer eintragen', 'ai-json-extractor-auto-embed-lite' ), __( 'Trage dich selbst als Testnutzer ein damit der Login funktioniert.', 'ai-json-extractor-auto-embed-lite' ), 'https://console.cloud.google.com/auth/audience', __( 'Testnutzer verwalten →', 'ai-json-extractor-auto-embed-lite' ), sprintf( __( 'Klicke auf „+ Add Users" und trage deine %s ein.', 'ai-json-extractor-auto-embed-lite' ), __( 'Google-E-Mail', 'ai-json-extractor-auto-embed-lite' ) ), '' ),
array( '4', __( 'OAuth-Zugangsdaten erstellen', 'ai-json-extractor-auto-embed-lite' ), __( 'Erstelle OAuth 2.0 Client-IDs. Typ: Webanwendung. Redirect-URI eintragen:', 'ai-json-extractor-auto-embed-lite' ), 'https://console.cloud.google.com/apis/credentials/oauthclient', __( 'Zugangsdaten erstellen →', 'ai-json-extractor-auto-embed-lite' ), sprintf( __( 'Anwendungstyp: Webanwendung . Unter %s eintragen:', 'ai-json-extractor-auto-embed-lite' ), __( 'Autorisierte Weiterleitungs-URIs', 'ai-json-extractor-auto-embed-lite' ) ), $redirect_uri ),
);
foreach ( $steps as $step ) {
echo '' . esc_html( $step[0] ) . '
' . esc_html( $step[1] ) . '
' . esc_html( $step[2] ) . '
';
if ( $step[5] ) { echo '
💡 ' . wp_kses_post( $step[5] ) . '
'; } // Hinweistexte kommen bereits übersetzt aus dem $steps-Array unten
if ( $step[6] ) { echo '
' . esc_html( $step[6] ) . ' ' . esc_html__( 'Kopieren', 'ai-json-extractor-auto-embed-lite' ) . '
'; }
echo '
' . esc_html( $step[4] ) . ' ';
}
echo 'ℹ️ ' . esc_html__( 'Google leitet nach dem Login über den WP Rankify-Server zurück. Das verhindert Firewall-Fehler bei manchen Hostern; dort wird nichts gespeichert. Hast du früher eine andere Weiterleitungs-URI eingetragen, ergänze die Adresse aus Schritt 4 in deinem OAuth-Client.', 'ai-json-extractor-auto-embed-lite' ) . '
';
echo '5
' . esc_html__( 'Client-ID und Client-Secret eintragen', 'ai-json-extractor-auto-embed-lite' ) . '
';
echo '
';
if ( $client_id && $client_secret ) {
$oauth_url = 'https://accounts.google.com/o/oauth2/v2/auth?' . http_build_query( array( 'client_id' => $client_id, 'redirect_uri' => $redirect_uri, 'response_type' => 'code', 'scope' => 'https://www.googleapis.com/auth/webmasters.readonly', 'access_type' => 'offline', 'prompt' => 'consent', 'state' => $oauth_state ) );
echo '';
}
echo '';