Aller ci-dessous pour voir la réponseFacebook jeton d'accès - Automatiser Obtenir le jeton
Je reçois l'amende jeton d'accès Facebook, mais où j'ai des problèmes est quand je suis en train d'automatiser ce processus.
Si je visite cette URL est le navigateur que je reçois le jeton d'accès très bien.
Exemple:
Je coller dans le navigateur et le retour a frappé.
Puis-je obtenir envoyé à cette page:
j'ai changé la pièce jeton d'accès de sorte que son pas un vrai jeton
Viola jeton d'accès! Ce que j'essaye de faire est de reproduire ce même comportement avec du code. Je me rapproche mais pas tout à fait là.
Je continue d'obtenir l'erreur user_denied.
% 3Ferror% 3Daccess_denied% 26error_code% 3D200% 26error_description% 3DPermissions% 2Berror% 26error_reason% 3Duser_denied% 23_% 3D_ & display = & la page locale = fr = & logger_id 786a3153-1d81-415c-8dca-f8fa8b0cd630
Je publie tous les en-têtes sur la console. C'est l'en-tête de l'emplacement que je suis préoccupé par **
Je pense que cela a à voir avec la redirection 302?
ApplicationId = request.ClientId;
string permissions = "['ads_management', 'ads_read']";
var destinationURL = String.Format(
@"https://www.facebook.com/dialog/oauth?client_id={0}&scope={1}&redirect_uri=http://www.kb-demos.com/login_success.html&response_type=token",
ApplicationId,
permissions);
// Create a new 'HttpWebRequest' Object to the mentioned URL.
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(destinationURL);
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36";
myHttpWebRequest.AllowAutoRedirect = false;
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
//Console.WriteLine("\nThe HttpHeaders are \n\n\tName\t\tValue\n{0}", myHttpWebRequest.Headers); // my http headers
// Print the HTML contents of the page to the console.
var headers = myHttpWebResponse.Headers;
// output all the headers
foreach(var header in headers) {
Console.WriteLine(header.ToString() + ": " + headers[header.ToString()] + "\n");
}
#region
//Stream streamResponse = myHttpWebResponse.GetResponseStream();
//StreamReader streamRead = new StreamReader(streamResponse);
//Char[] readBuff = new Char[256];
//int count = streamRead.Read(readBuff, 0, 256);
//Console.WriteLine("\nThe HTML contents of page the are : \n\n ");
//while (count > 0)
//{
// String outputData = new String(readBuff, 0, count);
// Console.Write(outputData);
// count = streamRead.Read(readBuff, 0, 256);
//}
//// Close the Stream object.
//streamResponse.Close();
//streamRead.Close();
// Release the HttpWebResponse Resource.
#endregion
myHttpWebResponse.Close();
Console.ReadLine();
Je reçois une erreur user_denied ici. Mais dans le navigateur, je reçois un jeton parfait. Je ne peux pas comprendre pourquoi.
Les en-têtes dans l'en-tête de l'emplacement, il semble fonctionner lors de l'utilisation du navigateur.
Scénario possible si je n'arrive pas à obtenir ce qui précède: Je me demandais s'il y a un navigateur avec une API? Quelque chose que je peux appeler à partir de la ligne de commande - transmettre certains arguments - et ensuite obtenir l'URL de redirection est une variable à analyser?
Vous n'êtes pas censé cette « automatiser ». Grattage des pages Facebook, et en utilisant des outils automatisés sur leur site, est explicitement contre leur ToS. – CBroe
@CBroe lmao. Je ne pense pas que vous comprenez le but de cette application. Je possède le compte qui accorde l'accès à cette application. Je lance cette application sur un travail planifié pour obtenir un jeton d'accès tous les jours, donc je peux exécuter une autre application que j'ai développée pour obtenir des rapports SEO pour de nombreux clients, plutôt que de se connecter manuellement pour chaque client. . – Radmation
@CBroe Le problème était que le jeton d'accès expire tous les 60 jours. J'ai maintenant automatisé la récupération des tokens d'accès, donc je n'ai plus besoin de le toucher. Plus une raison majeure pour avoir l'API est d'automatiser les tâches. Je ne suis pas en train de "gratter le site", je donne simplement accès à mon compte facebook. – Radmation