4 votes

redirect_uri et comment héberger callback.html sur SoundCloud ?

J'essaie d'accéder à Soundcloud à partir d'une page HTML locale sur mon ordinateur portable. Je suis bloqué à la partie de l'hébergement de "callback.html" comme redirect_uri. Le script que j'essaie d'exécuter est le JavaScript d'authentification de base de la page de documentation Soundcloud :

<script src="http://connect.soundcloud.com/sdk.js"></script>
<script>
// initialize client with app credentials
SC.initialize({
  client_id: 'my_client_id',
  redirect_uri: 'http://127.0.0.1/Users/Maria/Documents/SoundcloudClient/callback.html'
});

// initiate auth popup
SC.connect(function() {
  SC.get('/me', function(me) { 
    alert('Hello, ' + me.username); 
  });
});
</script>

Ce script m'amène à la pop-up de connexion lorsque je lance la page dans Chrome et Firefox. Mais, une fois que je me suis connecté en tant qu'utilisateur de Soundcloud, j'obtiens l'erreur suivante :

Oops! Google Chrome could not connect to 127.0.0.1

Si je change mon redirect_uri en localhost, j'obtiens la même erreur.

Si j'essaie :

files:///C:/Users/Maria/Documents/SoundcloudThinClient/callback.html

Je reçois une erreur similaire.

J'ai aussi essayé :

ocalhost:3000

et :

localhost:8080

même si je ne suis pas sûr de ce qui pourrait écouter sur ces ports.

Donc, en gros, je demande quel chemin je dois mettre pour callback.html afin que cela fonctionne ?

J'avoue que je ne sais pas comment fonctionne réellement le redirct_uri. J'ai regardé les pages Oauth correspondantes, mais je ne les comprends pas. Je commence à penser que je ne peux pas simplement créer une page HTML, coller le JavaScript, créer un fichier callback.html et faire en sorte que cela fonctionne, même si la documentation SC semble dire que c'est possible. Si c'est le cas, quelles sont les étapes que j'ai manquées ?

1voto

Johngo Points 11

Je commence à m'y essayer. Je crois que vous devez vous rendre sur le site du développeur et vous inscrire comme ayant une application. L'uri de redirection est demandée et le formulaire vous donne une clé API que vous pouvez utiliser dans votre application.

J'utilise drupal donc, peut-être que l'ajout du module oath et l'utilisation de Php pour ajouter la clé api pourrait fonctionner.

1voto

Harukimar Points 23

J'ai eu le même problème et je pense l'avoir résolu.

Rédaction du lendemain : j'ai posté ce message fatigué après avoir travaillé toute la nuit pour trouver une solution. Aujourd'hui, le lendemain, je réalise que vous parliez d'un problème général, alors que je suis confronté à un cas très particulier. Ce qui suit ne s'applique directement qu'à l'enregistrement de "soundcloudlabs". soundcloud-group-recorder : https://github.com/soundcloudlabs/soundcloud-group-recorder . Mais il y a probablement un principe plus général qui se cache derrière :

Premièrement : oui, vous devez enregistrer l'application comme la vôtre sur Soundcloud. C'est du moins ce que j'ai supposé. Et en faisant cela, vous devez enregistrer correctement où sur votre serveur vous placerez le fichier callback.html. Prenez le ClientID attribué à votre application et utilisez-le dans la procédure d'initialisation de l'API.

Je suis un novice et je ne connais que très peu le codage. Mais j'ai commencé à regarder dans le fichier principal, application.js.

  1. En haut du fichier, il y a deux instances de client_id y redirect_uri chacun. Je ne sais pas si cela sert à quelque chose ou si l'un est techniquement superflu. Par essais et erreurs, j'ai découvert que le remplacement de la deuxième instance de each par mes propres données fonctionnait.

  2. Alors il y a groupId y groupUrl qui doivent toutes deux contenir vos informations, entre guillemets.

  3. Après beaucoup d'essais et d'erreurs, ayant toujours du mal à faire fonctionner le truc, j'ai regardé autour de moi et j'ai vu que, alors qu'au début du fichier, client_id a été accroché dans SC.initialize, redirect_uri n'était pas. Sous la ligne :

client_id: CLIENT_ID

J'ai ajouté :

redirect_uri: REDIRECT_URI

- avec la virgule habituelle entre les deux. Et c'est tout. Ça marche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X