Je travaille sur un projet et je souhaite me connecter à Stack Overflow via cURL. J'utilise Google comme fournisseur openID, ce qui signifie que je dois d'abord me connecter à Google via son API.Connexion au débordement de pile avec cURL
Voici le code que j'ai jusqu'à présent:
#!/bin/sh
. ./params.sh #the script with $username and $password
curl --silent https://www.google.com/accounts/ClientLogin \
-d Email=$username -d Passwd=$password \
-d accountType=GOOGLE \
-d source=localhost-test-1 \
-d service=lso \
-o tokens
. ./tokens
echo $Auth; #$Auth is correct here - I did not get a BadAuth error.
endpoint="https://www.google.com/accounts/o8/id";
curl http://stackoverflow.com/users/authenticate \
-d "openid_identifier=$endpoint" \
-w %{redirect_url}> ./google_url
google_url=$(cat ./google_url);
echo $google_url;
echo;
echo;
echo;
curl -L --silent --header "Authorization: GoogleLogin auth=$Auth" $google_url;
À ce stade, je reçois une page de Google me disant que Stack Overflow veut des informations et je dois connecter Selon this page, la --header ... $Auth
partie. devrait compter comme un login et me rediriger vers Stack Overflow.
Voici la forme que je reçois quand je lance ce script:
<form id="gaia_universallogin"
action="https://www.google.com/accounts/ServiceLoginAuth?service=lso" method="post">
<input type="hidden" name="continue" id="continue"
value="https://www.google.com/accounts/o8/ud?st=SOME_KEY" />
<input type="hidden" name="service" id="service"
value="lso" />
<input type="hidden" name="dsh" id="dsh"
value="SOME_NEG_NUMBER" />
</form>
Lorsque je tente la réponse ci-dessous je reçois l'erreur suivante:
Can't call method "attr" on an undefined value at - line 8.
curl: (3) <url> malformed
--></style>
ici est la sortie de google2.html
<form id="gaia_loginform"
action="https://www.google.com/accounts/ServiceLoginAuth?service=lso" method="post" >
<input type="hidden" name="continue" id="continue" value="https://www.google.com/accounts/o8/ud?st=RNADOM" />
<input type="hidden" name="service" id="service" value="lso" />
<input type="hidden" name="dsh" id="dsh" value="NEG_NUMEBER" />
<input type="hidden" name="GALX" value="ABCD" />
<input type="text" name="Email" id="Email" />
<input type="password" name="Passwd" id="Passwd" >
<input type="checkbox" name="PersistentCookie" id="PersistentCookie" value="yes"
<input type="hidden" name='rmShown' value="1" />
<input type="submit" class="gaia le button" name="signIn" id="signIn" />
<input type="hidden" name="asts" >
</form>
Avez-vous essayé de changer le UserAgent de curl? – ZyX
ZyX - Pour quelle raison aurais-je le changement de l'UA? À ce stade, il n'est même pas en train de se connecter et encore moins de me donner un code spécifique à UA. –
il pourrait avoir une fonction de sécurité de ne pas vous permettre de vous connecter avec un agent utilisateur php ... –