Jump to content

GROS_FAIGNAN

INpactien
  • Content Count

    405
  • Joined

  • Last visited

About GROS_FAIGNAN

  • Rank
    Soldat Rebelle

Recent Profile Visitors

4992 profile views
  1. 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 ^^
  2. 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.
  3. 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 ?
  4. 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...)
  5. $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)
  6. 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
  7. 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 ?
  8. 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...)
  9. 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 ?
  10. 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.
  11. 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
  12. 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 ?
  13. 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 ?
  14. 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
  15. 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
×
×
  • Create New...