Der Umleitungs-URI von Instagram stimmt nicht mit dem ursprünglichen Umleitungs-URI überein, wenn zusätzliche Abfrageparameter verwendet werden

Lesezeit: 2 Minuten

Benutzer-Avatar
Jan Michael Intia

Ich arbeite an einem Plugin für WordPress, bei dem ein Benutzer auf die Schaltfläche „Auf Instagram anmelden“ klickt, um meine Instagram-App zu autorisieren. Nach der Autorisierung erhält das Plugin im Grunde nur die neuesten Instagram-Fotos von einem Benutzer und zeigt sie über ein Widget an.

Hier ist eine Schritt-für-Schritt-Anleitung, wie mein Plugin funktioniert:

  1. Der Benutzer klickt auf einer WordPress-Einstellungsseite auf „Bei Instagram anmelden“.
  2. Der Benutzer wird zum Autorisierungsbildschirm von Instagram (Anmeldebildschirm) weitergeleitet.
  3. Der Benutzer authentifiziert und genehmigt meine App erfolgreich.
  4. Instagram leitet den Benutzer zu my Umleitungs-URI.
  5. Die Datei „instagram-api-redirect.php“ erhält sowohl den „code“- als auch den „return_uri“-Parameter. Wobei der “Code” zum Anfordern des “Zugriffstokens” verwendet wird.
  6. Es leitet zusammen mit dem “Zugriffstoken” zurück zur WordPress-Einstellungsseite.
  7. Das Plugin speichert das “Zugriffstoken” in der Datenbank, das für die Authentifizierung von Anfragen verwendet werden soll.

Ich habe ein Problem damit, dass ich die Fehlermeldung bekomme „Umleitungs-URI stimmt nicht mit ursprünglichem Umleitungs-URI überein“ auf Schritt 5. Es funktioniert gut, wenn ich den Abfrageparameter “return_uri” aus der entferne Umleitungs-URI.

Einige Details können helfen:

Hier ist mein Umleitungs-URI aus meiner App:

http://mysite.com/plugins/pulp_instagram/instagram-api-redirect.php

Hier ist mein Umleitungs-URI die ich an Instagram sende “/autorisieren”:

http://mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http://localhost/instagram-app

Hier ist die vollständige Autorisierungs-URL, die ich an Instagram sende “/autorisieren”:

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=http://mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http://localhost/instagram -app&response_type=code

Hier ist die URL-Antwort:

http://mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http://localhost/instagram-app&code=557d15dacd0d40459edf70aa159476de

Dies ist der vollständige Code für die Datei “instagram-api-redirect.php”:

<?php 

// the redirect uri
$return_uri = $_GET['return_uri'];

require 'instagram.class.php';

// Initialize class
$instagram = new Instagram(array(
  'apiKey'      => 'CLIENT-ID',
  'apiSecret'   => 'CLIENT-SECRET',
  'apiCallback' => 'http://mysite.com/plugins/pulp_instagram/instagram-api-redirect.php'
));

// Receive OAuth code parameter
$code = $_GET['code'];

// Check whether the user has granted access
if (true === isset($code)) {

    // Receive OAuth token object
    $data = $instagram->getOAuthToken($code);
    print_r($data); 
} else {

  // Check whether an error occurred
  if (true === isset($_GET['error'])) {
    echo 'An error occurred: '.$_GET['error_description'];
  }

}
?>

Außerdem verwende ich die Klasse “Instagram PHP API” (instagram.class.php) von cosenary.

Danke im Voraus!

1366200cookie-checkDer Umleitungs-URI von Instagram stimmt nicht mit dem ursprünglichen Umleitungs-URI überein, wenn zusätzliche Abfrageparameter verwendet werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy