Jump to content

GROS_FAIGNAN

INpactien
  • Content Count

    411
  • Joined

  • Last visited

Everything posted by GROS_FAIGNAN

  1. ha zut alors... j'ai toujours le meme problème quand je tente avec des fenêtre in private (sous edge et chrome pareil)
  2. je up car si j'arrive a contourné l'espece de redirection toute naz, pas moyen de poster un nouveau sujet... error 500
  3. pas très top mon dernier post, peut importe. j'ai entendu parler de mercure sur symfony, pensez vous qu'il puisse régler le problème a savoir, envoyé des notif sur mobile de la meme façon que l'ont puisse recevoir des notif sur W10 et sans avoir besoin de demander a l'utilisateur d'installer une appli.
  4. arff j'ai deja fait eveidement, j'ai trouver plusieur reponse interessante, mais ma question est de savoir s'il il possible d'utiliser le meme framework pour les notification push sur mobile (android/ios) et le notification push sur un windows 10 de bureau par exemple. et, savoir s'il est necessaire de souscire a un abonnement particulier (tel que cetain site pourrait le laisser croire) pour les notif push sur mobile lorsque ce dernier est connecter a une passerelle reseau type ADSL
  5. bonjour je cherche a savoir quelle sont les possibilité pour un site web (pas une appli) de creer des notif push sur mobile . cdt Gros
  6. bonjour j'ai un probleme lorsque j'essaye de me connecter sur https://forum.phpfrance.com/ j'ai une redirection vers une vieille page pourrie ou j'ai gagné un iphone (avec reponse a des question blablalba. ca vien de ma machine ou c'est pareil chez vous ? Gros
  7. qqun sait comment entré du text dans le champ de recherche d'un moteur de recherche vai un code php et recuperer la page de retour correspondante ? [EDIT] en fait je cherche la facon de recuperer la liste des parametre que je doit envoyer en POST pour effectuer ma recherche ^^
  8. sinon y'a aussi peut etre le couple HTTPClient / DomCrawler fournit par symfony, qui devrait peut être suffire, reste a savoir si je vais reussir a trouver manpages et tuto par ce que sur le site de symfony, perso je trouve que c'est pas super la joie.
  9. a tient oui je cherche une methode pour envoyé une requete php (a priori POST donc) qui effectuerai une recherche sur google (qui mettrait un terme de recherche et cliquerai a ma place donc). j'ai chercher des methode sur google pour faire ca mais j'ai rien trouver ^^ ... curieux. pas moyen de trouver ca, qqun pourrait me dire de quel coté je doit cherché ? et comment definir quel param je doit utiliser par exemple ?
  10. vous auriez des source de bot ou de crawler /scraper tout pret, histoire d'avancer un peut plus vite, j'en ai trouver quelque un sur le net mais pas moyen de les faire tourner la pluspart sont plein de bug et ne sont plus maintenus ou avec des sources incomplètes/pas a jours. [EDIT] j'ai parler trop vite, j'en ai trouver qqun : apache lucene, elasticsearch, apache solr, sphinxsearch, dataparksearch, xapian, etc... des avis concernant ces différents moteur ? de preference pour coder en php...^^ (pas trop le choix, python et ruby faut oublier, et javascript pas garanti que ca passe non plus) et ici j'en ai carrement trouver 162 : https://www.findbestopensource.com/tagged/search-engine par contre je veut bien un descriptif des différentes catégories de projet qu'ont peut trouver (genre différence entre moteur de recherche, bot, crawler, spider, full-text, etc...)
  11. $response =$client->request('GET','https://www.digikey.com/product-search/download.csv?FV=-8%7C649&quantity=0&ColumnSort=0&page=1&pageSize=25'); hehe ouai ce serait pratique mais ca marche pas. (error 403 forbidden) idem pour cette forme la $response=file_get_contents('https://www.digikey.com/product-search/download.csv?FV=-8|649&quantity=0&ColumnSort=0&page=1&pageSize=25'); (enfin pas tout a fait, parfois mon script fonctionne plus ou moins mais c'est instable et parfaitement aléatoire)
  12. ca c'est parce que je suis une quiche qui debute 😉 merci Sheepux 😉 me reste plus qu'a reflechir comment ouvrir ce lien via une commande, lire la table et ne pas sauvegarder le fichier
  13. elle sont dispo sur le site... donc je vois pas pourquoi ce serait illégal, c'est des données constructeurs, des datasheet, des ifnos techniques, les prix et quantités pour exemple : https://www.digikey.com/products/capacitors/en c'est les infos dans le tableau, donc rien d’inaccessible au public, mais visiblement protégées contre le scraping, par contre elle sont accessible via l'API, qui n'est cependant pas trop adaptée a mon cas de figure [EDIT] petite appartée, vous auriez quelque bonnes lib sous la main pour la gestion des erreur [EDIT2] $dir[]=array("dir","ls");//Affiche la liste des fichiers et sous-dossiers contenus dans le répertoire. vous voyez une erreur la dedans ?
  14. non,...ma seul interaction utilisateur pour le moment c'est l'authentification chez google (ou digikey ou autre peut importe) qui n'aura jamais lieu puisque la page d'autenthification se sera pas redirigé vers l'utilisateur (qui de plus n'est pas le propriétaire du compte connecter a l'appli). pour faire simple ce que je veut faire : 1) extraire des données chez les grossiste en electronique 2) mettre ces données (après traitement et formatage) a disposition du public, (dans un site web/une appli/ etc...)
  15. humhum, j'avais toujours penser que le but d'une api etant la communication interserveur a profit d'une requete client, mais apparament ca se resueme plus a OAuth qu'a autre chose. comment recuperer les infos qui m'interesse sans utiliser l'api. j'ai tenter de parser le site mais pour l'instant en dehors des erreur de parse et des probleme de maintenance du code que ca va engendrer, j'ai des erreur 403 (forbidden acces) qui ne facilite pas les chose. une autre solution que les API et la parse html pour recuperer les données qui m'interesse ?
  16. est ce que je doit chercher autre part que les API ? qu'est ce que je pourrais trouver d'autre part ce que parser le site pour recup les infos qui m'interesse ca me parrait pas top, et d'autant plus que pour l'instant ca a pas l'air de marcher des masse.
  17. non ca y'es j'ai pigé ce que je comprenais pas, comme le code est passé en parametre de la page connect.php il est disponible sur celle ci et pas sur login.php bah justement >> nulle part
  18. comme dit la doc : Developer application example request (Sandbox) Example request to PartSearch using developer credentials and endpoint (sandbox-api.digikey.com) : GET /Search/v3/Products/p5555-nd HTTP/1.1 Host: sandbox-api.digikey.com X-DIGIKEY-Client-Id: WugAd2A6Lxy3Eu3Mgvov45KUNoguMoUl Authorization: Bearer StgGLw9b3hkwqlWAGBmdYoBNEokm X-DIGIKEY-Locale-Site: US X-DIGIKEY-Locale-Language: en X-DIGIKEY-Locale-Currency: USD X-DIGIKEY-Locale-ShipToCountry: us X-DIGIKEY-Customer-Id: 0 il precise http/1.1 donc j'aurais tendance a dire que non mais peut etre , juste a rajouté le port dans mon URL de destination ? si c'est ca (style api.url:443) j'ai tenter le coup et ca marche pas : error 52 empty response une erreur de certificat ? j'ai mis le meme que celui que j'utilise avec google [EDIT] non c'est ca, fallait juste entrer. https://api.url... ca fonctionne nickel ... merci Cryo 😉 [EDIT] me reste a mettre en place éventuellement le refresh token, mais question avant toute chose. comment puis-je "contourné" la partie "acceptation utilisateur" (par clique de souris j'entend. je m'explique, le code php de connexion a l'API va être exécuté sur un serveur distant qui va ouvrir une connexion chez digikey, et transmettre des infos, mais possiblement plusieurs fois par heure. mon serveur va lui transmettre des infos a un script exécuté sur une application et elle meme connecter a mon serveur. les infos récupérer chez digikey en font partie et sont a la demande de l'utilisateur final. et cet utilisateur n'as aucun rapport avec le compte digikey en question et ne devrait donc logiquement pas avoir d'acceptation a faire . et comme c'est de toute façon mon serveur qui se connecte chez digikey il serait plus simple que cette acceptation soit automatique. a moins de lancer la première connexion manuellement puis de faire un refresh token toute les 25 minute (30 min de validité le tokent digi) je vois pas, et je trouve ca pas terrible. comment faire ... une idée ?
  19. bon j'ai commencer a ecrire le code pour l'API qui m'interesse : connexion sur l'API de digikey tout marche bien au debut : je recupere accessToken et refreshToken facilement je fait un essais via leur "trying tool" (https://developer.digikey.com/products/product-information/partsearch/productdetails?prod=truehttps://developer.digikey.com/products/product-information/partsearch/productdetails?prod=true) et ca marche aussi j'ai bien le bon résultat. mais ensuite c'est la que ca ce gate, lorsque j'essais d'obtenir le meme resultat via insomnia ou en php, ... pas moyen soit des erreur timed out soit des erreur connection refused soit des erreur connexion impossible voici le code en question : $response = $client->request('GET', 'sandbox-api.digikey.com/Search/v3/Products/'.$DPN, [ 'headers' => [ 'X-DIGIKEY-Client-Id'=> DIGIKEY_ID, 'Authorization'=>'Bearer '.$accessToken, 'X-DIGIKEY-Locale-Site'=> 'FR', 'X-DIGIKEY-Locale-Language'=> 'fr', 'X-DIGIKEY-Locale-Currency'=> 'EUR', 'X-DIGIKEY-Locale-ShipToCountry'=> 'fr', 'X-DIGIKEY-Customer-Id'=> 0 ] ]); $response = json_decode($response->getBody()); dump($response); voici le message d'erreur : sur le site de guzzle ont me dit qu'une error 7 = "CURLE_COULDNT_CONNECT (7) Failed to connect() to host or proxy." en gros "...ca marche pas" qqun aurait une idée de la direction dans laquelle cherchée ?
  20. je suppose que ton explication doit correspondre a ceci : https://www.php.net/manual/fr/function.header.php (les commentaire avant le header crées des problèmes ^^ etc...) oui effectivement cette partie je ne l'ai pas encore correctement assimilée: part contre la ou je peche un peut c'est dans la comprenhesion de ma fonction $response = $client->request('POST',$tokenEndpoint, [ 'form_params' => [ 'code'=>$_GET['code'], 'client_id'=> GOOGLE_ID, 'client_secret' =>GOOGLE_SECRET, 'redirect_uri' => $URI, 'grant_type' => 'authorization_code' ] ]); 1) la partie 'code' =>$_GET['code'] , je vois pas du tout comment elle fonctionne : ou vas t'elle le chercher ce 'code' et puis c'est quoi d'ailleur ce code , pas le $tokenEndpoint vue que celui ci est passé en parametre de la fonction. donc ca doit etre le code d'autentification retourné par l'api... 2) l'uri passé en parametre et correspond a l'url de la page dans laquelle est codée la fonction client->request() $currentFolder = "http://localhost/OAuth2_TEST/";//a deplacer en variable d'environnement $URI =$currentFolder.'connect.php'; un peut bizarre
  21. le code est disponible ici https://github.com/grosfaignan/OAuth2_TEST et est fonctionnel sur windows 10 si certain veulent me corriger ou me donnée des idées, il peuvent le faire ^^ le fichier config contenant les identifiants et clefs privées n'est pas disponible, rendez vous sur https://console.cloud.google.com/apis , section identifant
  22. c'est bon j'ai trouver ou était le problème header('Location: http://localhost/OAuth2_TEST/secret.php'); il fallait codé la ligne en entier et pas en relatif. et du coup pas besoin du require et le session_start() fonctionne bien
  23. faudrait l'inclure via quelle fonction ? a l'origine elle est censée être incluse via un passage de paramètres dans le header $_SESSION['email'] = $response->email; header('Location: /secret.php'); (en bas de la page connect) mais chez moi ca ne fonctionne pas (alors que sur la machine du tutorant c'est ok... d'ailleur ^^) j'ai une erreur de type "header already sent" [EDIT] ou deplacement de la fonction header autre part dans le code (pourtant a cette endroit ca a l'air pratique)
  24. voici mes fichier je l'es ai ecrit tel que dans la video : il fonctionne a ceci prêt que : 1) je doit ajouté un require 'secret.php' dans mon fichier connect , sinon j'ai une erreur de type : 2) une fois que c'est fait si je veut supprimé les erreur résiduelle je doit virer la partie session_start() en bas du fichier connect 3) ceci etant j'ai l'impression que la partie session_start() doublon en bas de la page connect.php fait doublon avec la partie session_start() de la page secret.php voici le code login.php (page d'accueuil avec le bouton de connection) : <?php require('config.php') ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X_UA-Compatible" content="id=edge"> <title>Essais OAuth</title> </head> <body> <h1> Se Connecter</h1> <p> <a href="https://accounts.google.com/o/oauth2/v2/auth?scope=email&access_type=online&redirect_uri=<?= urlencode('http://localhost/PrTest/OAuth2_test/connect.php') ?>&response_type=code&client_id=<?=GOOGLE_ID ?>">Se connecter via Google</a> </p> </body> </html> la page config.php qui contien mes clef et id <?php define('GOOGLE_ID','mon_identifiant_googleqqe je n'affiche pas ici'); define('GOOGLE_SECRET', 'mon_code_secret_google_que je n'affiche pas ici'); ?> la page connect.php qui se charge de l'atablissement de la connection OAuth avec google <?php require __DIR__.'\vendor\autoload.php'; require 'config.php'; require 'secret.php'; use GuzzleHttp\Client; $client = new Client([ // You can set any number of default request options. 'timeout' => 2.0, //verification du certificat (téléchargé préalablement sur curl.haxx.se) certificat concernant curl 'verify'=>__DIR__.'/cacert.pem' ]); try { $response =$client->request('GET','https://accounts.google.com/.well-known/openid-configuration'); $discoveryJSON = json_decode((string)$response->getBody()); $tokenEndpoint = $discoveryJSON->token_endpoint; $userInfoEndpt = $discoveryJSON->userinfo_endpoint; $response = $client->request('POST',$tokenEndpoint, [ 'form_params' => [ 'code'=>$_GET['code'], 'client_id'=> GOOGLE_ID, 'client_secret' =>GOOGLE_SECRET, 'redirect_uri' =>'http://localhost/PrTest/OAuth2_test/connect.php', 'grant_type' => 'authorization_code' ] ]); $accessToken = json_decode($response->getBody())->access_token; $response = $client->request('GET', $userInfoEndpt, [ 'headers' => [ 'Authorization' =>'Bearer' . $accessToken ] ]); $response = json_decode($response->getBody()); if($response->email_verified === true) { //-----partie a virer si je veut que le connect n'est pas de warning php-----// /*session_start(); $_SESSION['email'] = $response->email; header('Location: /secret.php'); exit();*/ //---------------------------------------------------------------------------// } } catch(\GuzzleHttp\Exception\ClientException $exception) { dump($exception->getMessage()); } ?> la page secret.php <?php require 'vendor/autoload.php'; session_start(); if (!isset($_SESSION['email'])) { header('location: login.php'); exit(); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X_UA-Compatible" content="id=edge"> <title>equivalent page secrete tuto https://www.youtube.com/watch?v=I5tFlK5PPjc </title> </head> <body> <h1> cette page ne devrait pas etre accessible</h1> <?php dump($_SESSION) ?> </body> </html>
  25. j'ai fini par trouver un tuto qui me semble intéressant pour démarrer, https://www.youtube.com/watch?v=I5tFlK5PPjc , pour l'instant j'ai reussi a realiser les parties suivantes : enregistrement et recuperation des identifiant (CLIENT_ID & CLIENT_SECRET) sur les services de googlesapi.com creation de mes debut de pages php (elle sont ok) lorsque je clique sur mon bouton se connecter avec google sur ma page php j'ai bien la page google qui s'affiche j'ai bien un token qui s'afficche sur ma page connect (ma REDIRECT_URI) et à’étape suivante les requêtes insomnia fonctionnent. et je recupere bien la clef d'authentification le problème vient ensuite (~vers la minute 19 du tuto) je dois installé les paquet symfony/var-dump (fait) et guzzlehttp/guzzle:6.3.3 (fait aussi) mais une fois que ces paquet sont installé dans mon dossier sous-projet (www/projet/sous-projet), plus rien ne marche, les fonctions symfony et guzzle ne sont pas reconnues et pires les fonction php (type var_dump()) ne sont plus reconnues non plus si qqun peut m'aider ...^^ [EDIT] non c'est bon j'ai trouvé, une erreur de syntaxe a la con;
×
×
  • Create New...