LeoTechmaker / FollowersCounter

MIT License
30 stars 14 forks source link

Le compteur ne se lance pas. #21

Closed drkmm closed 5 years ago

drkmm commented 5 years ago

Bonjour à tous !

J'ai réussi à m'en sortir avec le 1er compteur qui fonctionne.

Mais le 2e me pose de sérieux problème !

J'ai acheté cette carte : https://www.amazon.fr/gp/product/B07B2SQ5NS

J'ai mis un moment à comprendre pas mal étant donné que c'est mon premier projet à partir de ce type de carte etc :)

Actuellement, j'en suis à cette étape :

Sketch uses 380344 bytes (36%) of program storage space. Maximum is 1044464 bytes. Global variables use 36200 bytes (44%) of dynamic memory, leaving 45720 bytes for local variables. Maximum is 81920 bytes. Uploading 384496 bytes from C:\Users*****\AppData\Local\Temp\arduino_build_664835/Wireless_Follower_Counter.ino.bin to flash at 0x00000000 ................................................................................ [ 21% ] ................................................................................ [ 42% ] ................................................................................ [ 63% ] ................................................................................ [ 85% ] ........................................................ [ 100% ]

Dès lors, je n'ai pas l'étape suivante et dans la console IDE, il me marque un point toutes les 2 secondes.

Une idée de ce qui a aurait échappé ?

Merci !

Fardenco commented 5 years ago

Les points s'affichent pendant que le contrôleur essaie de se connecter au réseau WiFi. Si les points continuent à s'afficher après une dizaine de secondes, il y a de fortes chances que les paramètres de connexion au réseau ne soient pas bons

drkmm commented 5 years ago

Tout à fait exact, pour une raison de mauvaise manip, le Config.h était reset. Merci :)

J'ai désactivé Twitter & FB, Youtube marche nickel, par contre j'en suis désormais à finir de parametrer Instagram qui me donne du fil à retordre ! Voici l'apercu dans la console :

15:59:12.901 -> API call. 15:59:13.441 -> Incompatible JSON 15:59:13.441 -> : -1 15:59:13.441 -> 15:59:14.924 -> Skipped call for API restriction. Last known value used. 15:59:14.924 -> : -1

Voici mes settings :

define instagramPageId "2871234850"

define instagramAccessToken "***"

define instagramSSLCertificateFootprint "b98ffcc91caa900719fc817334b4736384dd294e"

Fardenco commented 5 years ago

"Incompatible JSON" indique que la réponse de l'API ne correspond pas ce qui est attendu. Il y a de fortes chances que cette réponse contienne en fait un message d'erreur. Il faudrait que tu execute la requête toi même dans un navigateur, afin de récupérer et d'afficher le contenu de la réponse. Mais en général, les erreurs comme celle-ci sont dues à une mauvaise clé d'API

drkmm commented 5 years ago

C'est normal que je n'ai pas eu d'API à installer pour Instagram avant tout ?

Car pour YouTube ca écrit bien "YouTube API call" et pour Instagram, juste "API call", juste savoir déjà si c'était normal.

Fardenco commented 5 years ago

C'est bizarre que ça affiche ça. Mais qu'est-ce que tu entends par "installer l'API" ? Dans le fichier Config.h tu dois avoir rentré 2 données

define instagramPageId "2368412736"

define instagramAccessToken "xxxxxxxxxxxxxx"

Tu dois y indiquer l'ID de ta page instagram, ainsi que ton token d'accès pour l'API (récupéré sur https://www.instagram.com/developer/ )

drkmm commented 5 years ago

C'est bien ça oui, du coup dans developer, à mon avis je suis au bon endroit pour récup la clé à coup sûr :/

drkmm commented 5 years ago

C'est bien ici que ça se passe ? image

Fardenco commented 5 years ago

Il me semble que oui, mais je n'en suis pas sûr. J'ai fait ça une seule fois et c'était il y a longtemps, à la création du compteur

drkmm commented 5 years ago

{"meta": {"code": 400, "error_type": "OAuthAccessTokenException", "error_message": "The access_token provided is invalid."}}

J'ai suivi cette article et j'ai réussi à débloqué mon token qui n'était pas bon ! https://bertiaux.fr/archives/petit-guide-bien-gerer-access-token-instagram-recuperation-de-flux-de-photos

drkmm commented 5 years ago

Donc mon token fonctionne mais maintenant j'en suis là :/

14:11:14.999 -> Instagram API call. 14:11:15.303 -> Failed to parse JSON 14:11:15.303 -> Instagram : -1 14:11:15.303 -> 14:11:17.053 -> Skipped Instagram call for API restriction. Last known value used. 14:11:17.053 -> Instagram : -1

drkmm commented 5 years ago

Le lien d'accès au token qu'il y a dans le programme est bon, il me retourne ceci :

{"data": {"id": "2871234850", "username": "xxx", "profile_picture": "https://scontent.cdninstagram.com/vp/xxx.jpg?_nc_ht=scontent.cdninstagram.com", "full_name": "xxx", "bio": "xxx", "website": "xxx", "is_business": true, "counts": {"media": 161, "follows": 182, "followed_by": 2663}}, "meta": {"code": 200}}

drkmm commented 5 years ago

En ayant modifier le code : Serial.println("Failed to parse JSON - " + answer);

J'obtiens : Failed to parse JSON - Error : no HTTP code

Ca te parle ?

Fardenco commented 5 years ago

Les autres média fonctionnent ? Tu pourrais te retrouver dans ce cas si le compteur ne parvenait pas à accéder à internet, en cas de timeout

Mais c'est peut-être autre chose, Léo m'a envoyé un message tout à l'heure pour le dire que la récupération des données Instagram ne fonctionnait plus depuis hier (affichage de "Erreur" sur le compteur), donc c'est peut-être un problème global, peut-être que Instagram a changé quelque chose, c'est déjà arrivé. Par contre je ne vais pas pouvoir regarder ce qu'il en est avant la semaine prochaine

Edit : d'un autre côté ce que tu m'envoies montre que l'appel fonctionne, en tous cas depuis un navigateur, et les données que tu récupères suivent bien la structure qu'on attend. J'avais eu des problèmes avec Facebook il me semble, où les appels fonctionnaient depuis un navigateur mais pas depuis l'ESP, si je me souviens bien c'était une erreur avec le SSL. Peut-être que le certificat a changé, auquel cas il faudrait modifier la valeur de "instagramSSLCertificateFootprint ". Quoi qu'il en soit je reviens vers toi dès que j'aurais eu le temps d'y jeter un œil.

drkmm commented 5 years ago

Oui Youtube fonctionne parfaitement, j'ai desactivé les deux autres.

Ouai ! J'ai exactement cette erreur !

Merci !

Fardenco commented 5 years ago

Essaie de remplacer l'empreinte par celle ci a654f33fd0381ec032b550ffec8b16ea6c7ae34f

drkmm commented 5 years ago

Toujours la même...

Fardenco commented 5 years ago

et ça ? 5fb7ee0633e259dbad0c4c9ae6d38f1a61c7dc25

drkmm commented 5 years ago

Ouai nan tjrs pas :/

Fardenco commented 5 years ago

Bon bah laisse alors, je regarderai ça quand j'aurais un peu de temps. Je reviens vers toi dès que j'ai du nouveau

drkmm commented 5 years ago

Avec plaisir ^^

J3r3m38 commented 5 years ago

Bonjour, merci pour ce travail !!! 👍 mais j'ai également le même problème que drkmm sur instagram, le token fonctionne dans le navigateur donc il est correct (mon compteur fonctionne correctement avec twitter).

drkmm commented 5 years ago

Des news @Fardenco ?

J3r3m38 commented 5 years ago

@drkmm sur le compteur sa te marque "ERREUR" ou "967295" ? car moi j'ai le nombre mais il n'est pas correct.

drkmm commented 5 years ago

ERREUR.

Fardenco commented 5 years ago

Voilà voilà, le problème est réglé, ou plutôt contourné. Je ne sais pas vraiment pourquoi, mais en gros l'ESP ne recevait carrément pas de réponse de l'API. Mais du coup en fouillant un peu, je suis tombé sur une librairie créée par la même personne qui a créé les librairies qu'on utilise déjà pour YouTube et Facebook, et il se trouve qu'en plus de fonctionner, cette librairie ne nécessite même pas de clé d'API. En gros la librairie ne passe pas par l'API d'Instagram, elle utilise directement le contenu du HTML d'une page Instagram pour en extraire la valeur du nombre de followers (c'est du scraping)

Téléchargez donc la dernière version, mettez à jour votre fichier Config.h en suivant le nouveau format (maintenant c'est le nom de la page et plus son id), et tout devrait rentrer en ordre

J3r3m38 commented 5 years ago

Merci !!!! je vais tester directement, je te tiens au courant.

drkmm commented 5 years ago

Merci ! T'assure ! Dommage qu'on m'ait viré du Discord au passage, l'ambiance est pas superbe...

J3r3m38 commented 5 years ago

Pour moi le compteur reste a 000000 :(

J3r3m38 commented 5 years ago

enfin juste pour instagram car pour twitter il fonctionne toujours

drkmm commented 5 years ago

Aucun soucis de mon côté, t'as bien les deux fichiers à jour ?

J3r3m38 commented 5 years ago

oui oui j'ai tous rechargé même en laissant le compte de Léo au début celui-ci affiché 000000 aussi

Fardenco commented 5 years ago

Pour le Discord, ça n'est pas moi qui m'en occupe. Pour les 0, c'est quoi le nom de la page ? Tu as bien mis le nom de la page dans le fichier de conf, et pas l'id ?

J3r3m38 commented 5 years ago

oui oui j'ai remis

define instagramPageName "leotechmaker"

il y a toujours les 0

Fardenco commented 5 years ago

C'est vraiment bizarre, car le fait que Twitter fonctionne indique que la connexion à internet est bien établie, et avec la page de Léo fonctionne chez moi

J3r3m38 commented 5 years ago

Pour le gestionnaire de carte ESP8266 2.5.0 beta2, je vais essayer de mettre une autre version

J3r3m38 commented 5 years ago

Youpi ça marche !!!!!! j'ai changer la version dans le gestionnaire de carte ESP8266 et je suis passé en version 2.4.1 :)

Merci 👍

Fardenco commented 5 years ago

Ok, tant mieux dans ce cas ;)