Twitter oAuth callbackUrl-localhost development

est quelqu'un d'autre ayant un moment difficile obtenir Twitters URL de rappel de outh pour frapper leur environnement de développement localhost. Apparemment, il a été désactivé récemment. http://code.google.com/p/twitter-api/issues/detail?id=534#c1

est-ce que quelqu'un a une solution. Je ne veux pas vraiment arrêter mon développement

107
demandé sur Bill the Lizard 2009-04-29 08:04:28

17 réponses

variante 1.

Préparez votre .hôtes (Windows) ou fichier etc/hosts pour pointer un domaine actif de votre IP localhost. tels que:

127.0.0.1 xyz.com

où xyz.com c'est ton vrai domaine.

variante 2.

en outre, l'article donne l'astuce d'utiliser alternativement un service de raccourci D'URL. Raccourcissez votre URL locale et fournissez le résultat comme callback.

variante 3.

en outre, il semble que cela fonctionne de fournir par exemple http://127.0.0.1:8080 comme rappel à Twitter, au lieu de http://localhost:8080 .

133
répondu Tony 2013-06-16 17:03:53

j'ai dû faire ça la semaine dernière. Apparemment localhost ne fonctionne pas mais 127.0.0.1 ne va pas figure.

cela suppose naturellement que vous enregistrez deux applications avec Twitter, une pour votre live www.mysite.com et une autre pour 127.0.0.1 .

27
répondu Adam 2015-04-19 10:43:23

vient de mettre http://127.0.0.1:xxxx / comme url de rappel, où xxxx est le port pour votre framework

10
répondu Zamith 2012-02-25 13:43:53

Oui, il a été désactivé en raison du récent problème de sécurité qui a été trouvé à OAuth. La seule solution pour l'instant est de créer deux autres applications, l'une pour la production et l'autre pour le développement. Dans l'application de développement, vous définissez votre URL de rappel localhost au lieu de l'URL live.

7
répondu arikfr 2009-05-03 16:30:49

C'est comme ça que je l'ai fait:

URL de rappel enregistrée: http://127.0.0.1/Callback.aspx

   OAuthTokenResponse authorizationTokens = 
        OAuthUtility.GetRequestToken(ConfigSettings.getConsumerKey(), 
                                     ConfigSettings.getConsumerSecret(), 
                                     "http://127.0.0.1:1066/Twitter/Callback.aspx");

ConfigSettings:

public static class ConfigSettings
{
    public static String getConsumerKey()
    {
        return System.Configuration.ConfigurationManager.AppSettings["ConsumerKey"].ToString();
    }

    public static String getConsumerSecret()
    {
        return System.Configuration.ConfigurationManager.AppSettings["ConsumerSecret"].ToString();
    }

}

Web.config:

<appSettings>

    <add key="ConsumerKey" value="xxxxxxxxxxxxxxxxxxxx"/>
    <add key="ConsumerSecret" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>

</appSettings>

assurez-vous que vous définissez la propriété "utiliser les ports dynamiques" de votre projet à "false" et entrez un numéro de port statique à la place. (J'ai utilisé 1066).

j'espère que cela aidera!

7
répondu ThdK 2011-05-09 12:54:30

utiliser http://smackaho.st

ce qu'il fait est une simple association DNS à 127.0.0.1 qui vous permet de contourner les filtres sur localhost ou 127.0.0.1:

smackaho.st. 28800 DANS UN 127.0.0.1

Donc, si vous cliquez sur le lien, il vous affichera ce que vous avez sur votre serveur web local (et si vous n'en avez pas, vous obtiendrez une erreur 404). Vous pouvez bien sûr le régler à n'importe quelle page/port que vous voulez:

http://smackaho.st:54878/twitter/callback

7
répondu Mob 2012-02-09 11:56:01

URL de Callback de l'ouvrage

http://localhost:8585/logintwitter.aspx

convertir en

http://127.0.0.1:8585/logintwitter.aspx
7
répondu Hakkı Eser 2014-12-29 14:19:56

je travaillais avec Twitter callback url sur mon hébergeur Local. Si vous ne savez pas comment créer un hôte virtuel ( c'est important), utilisez Ampps. Il est vraiment cool et facile. En quelques étapes, vous avez votre propre hôte virtuel et ensuite chaque url fonctionnera dessus. Par exemple:

  1. télécharger et installer ampps

  2. Ajouter nouveau domaine. (ici vous pouvez définir par exemple twitter.local) qui signifie votre hôte virtuel sera http://twitter.local et il fonctionnera après l'étape 3.

  3. je travaille sur Win alors allez sous votre fichier hôte -> C:\Windows\System32\Drivers\etc\hosts et ajouter la ligne: 127.0.0.1 twitter.local

redémarrez votre Ampps et vous pouvez utiliser votre callback. Vous pouvez spécifier n'importe quelle url, même si vous utilisez un MVC framework ou si vous avez htaccess url rewrite.

Espérons Que Cette Aide! Acclamation.

4
répondu Glibo 2014-01-17 10:04:16

quand je développe localement, je mets toujours en place un nom de dev hébergé localement qui reflète le projet sur lequel je travaille. Je l'ai installé dans xampp par l'intermédiaire de xampp\apache\conf\extra\httpd-vhosts.conf et aussi dans \Windows\System32\drivers\etc\hosts.

Donc, si je suis en train d'ouvrir un local dev site pour example.com, je voudrais le configurer comme exemple.dev dans ces deux fichiers.

brève réponse: une fois que cela est mis en place correctement, vous pouvez simplement traiter cette url ( http://example.dev ) comme s'il était en direct (plutôt que local) que vous avez mis en place votre application Twitter.

une réponse similaire a été donnée ici: https://dev.twitter.com/discussions/5749

citation directe (italique ajouté):

vous pouvez fournir N'importe quelle URL valide avec un nom de domaine que nous reconnaissons sur le détails de la demande de page. OAuth 1.0 a exige que vous envoyer un la valeur oauth_callback sur l'étape de requête token du flux et nous allons accepter un appel dynamique basé sur locahost sur cette étape .

Cela a fonctionné comme un charme pour moi. Espérons que cette aide.

3
répondu Joe Bergevin 2013-05-23 15:27:31

il peut être fait très commodément avec Fiddler :

  • Ouvrir le menu Outils > HOSTS...
  • insérer une ligne comme 127.0.0.1 your-production-domain.com , assurez-vous que " Activer le remapping des requêtes..."est cochée. N'oubliez pas d'appuyer sur Enregistrer .
  • si l'accès à votre serveur de production réel est nécessaire, il suffit de quitter Fiddler ou désactiver remappage.
  • nouveau départ de Fiddler va tourner sur remapping (si elle est cochée).

un bonus agréable est que vous pouvez spécifier un port personnalisé, comme ceci: 127.0.0.1:3000 your-production-domain.com (il serait impossible d'y parvenir via le fichier hosts). En outre, au lieu de IP vous pouvez utiliser n'importe quel nom de domaine (par exemple, localhost ).

de cette façon, il est possible (mais pas nécessaire) d'enregistrer votre application Twitter une seule fois (à condition que cela ne vous dérange pas) utiliser les mêmes clés pour le développement local et la production).

3
répondu Roman Boiko 2014-08-12 21:34:41

éditez cette fonction sur TwitterAPIExchange.php sur la ligne #180

public function performRequest($return = true)
{
    if (!is_bool($return)) 
    { 
        throw new Exception('performRequest parameter must be true or false'); 
    }

    $header = array($this->buildAuthorizationHeader($this->oauth), 'Expect:');

    $getfield = $this->getGetfield();
    $postfields = $this->getPostfields();

    $options = array( 
        CURLOPT_HTTPHEADER => $header,
        CURLOPT_HEADER => false,
        CURLOPT_URL => $this->url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false
    );

    if (!is_null($postfields))
    {
        $options[CURLOPT_POSTFIELDS] = $postfields;
    }
    else
    {
        if ($getfield !== '')
        {
            $options[CURLOPT_URL] .= $getfield;
        }
    }

    $feed = curl_init();
    curl_setopt_array($feed, $options);
    $json = curl_exec($feed);
    curl_close($feed);

    if ($return) { return $json; }
}
2
répondu Helper 2013-09-11 06:56:13

j'ai eu le même challenge et je n'ai pas été capable de donner localhost comme URL de rappel valide. J'ai donc créé un domaine simple pour nous aider à: https://tolocalhost.com

il redirigera n'importe quel chemin vers votre domaine et port localhost dont vous avez besoin. Espérons qu'il pourra être utile à d'autres développeurs.

2
répondu Jørgen 2017-12-01 15:41:41

set callbackurl en application twitter : 127.0.0.1:3000 et mettre WEBrick à bind sur 127.0.0.1 au lieu de 0.0.0.0

commande: rails s-b 127.0.0.1

1
répondu Alok Yadav 2013-01-15 18:26:12

ressemble à Twitter permet maintenant localhost à côté de ce que vous avez dans les paramètres Callback URL , tant qu'il y a une valeur là.

1
répondu MrMakeIt 2014-11-21 07:07:56

j'ai lutté avec cela et suivi une douzaine de solutions, à la fin tout ce que j'ai eu à faire pour travailler avec n'importe quel apis ssl sur l'hôte local était:

Allez télécharger: cacert.fichier pem

Dans php.ini * nations unies-commentaire et le changement: curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"

  • vous pouvez trouver où votre fichier php.ini se trouve sur votre machine en exécutant php --ini dans votre CLI
  • j'ai placé mon cacert.pem dans le même répertoire que le php.ini pour plus de facilité.
1
répondu Lewis 2015-08-14 09:14:48

ce sont les étapes qui ont fonctionné pour moi pour obtenir Facebook travailler avec une application locale sur mon ordinateur portable:

  • goto apps.twitter.com
  • entrez le nom, la description de l'application et L'URL de votre site Note: pour localhost: 8000, utiliser 127.0.0.1: 8000 car le premier ne fonctionnera pas
  • saisissez L'URL de rappel correspondant à votre URL de rappel définie dans TWITTER_REDIRECT_URI votre application Remarque: par exemple: http://127.0.0.1/login/twitter/callback (localhost ne fonctionnera pas).
  • Important entrez les URL "Politique de confidentialité" et "conditions d'utilisation" si vous souhaitez demander l'adresse email de l'utilisateur
  • cochez la case accepter les Termes
  • cliquez sur [Créer votre application Twitter]
  • passer à l' [les Clés et les Jetons d'Accès] sur l'onglet en haut
  • copier le " consommateur Key (API Key) " et "Consumer Secret (API Secret)" pour TWITTER_KEY et TWITTER_SECRET dans votre application
  • cliquez sur l'onglet" Permissions "et réglez de manière appropriée sur "read only", "read and write" ou "read, write and direct message" (utilisez l'option la moins intrusive nécessaire pour votre application, pour juste et OAuth login "read only" suffit )151940920"
  • sous" autorisations supplémentaires "cochez la case" Demander une adresse e-mail aux utilisateurs" si vous souhaitez l'adresse e-mail de l'utilisateur doit être retournée aux données de connexion D'OAuth (dans la plupart des cas cochez Oui)
1
répondu Kmeixner 2017-09-13 20:39:56

semble de nos jours http://127.0.0.1 a également cessé de fonctionner. Une solution simple est d'utiliser http://localtest.me au lieu de http://localhost il est toujours en évoquant des 127.0.0.1 Et vous pouvez même ajouter n'importe quel sous-domaine, et il sera toujours 127.0.0.1

Voir Site Web

0
répondu Aron Einhorn 2018-07-27 17:09:36