Assurez-vous que "Onebox Assistant" explore ces aperçus de manière fiable !

Ce qu’il fait

Transforme ce type de résultat :

(où votre serveur n’a pas réussi à récupérer le code source de la page et ne peut donc pas extraire les balises requises pour créer la onebox)

En ceci ! :

Il fournit simplement un chemin alternatif pour que la onebox puisse obtenir son code source de page afin de rechercher des métadonnées lorsque le serveur cible refuse votre connexion.

Il ne modifie en rien la façon dont la onebox traite ensuite le code source de la page pour trouver les métadonnées et afficher la boîte.

Il est conçu pour vous permettre de saisir les détails et les informations d’identification d’une API tierce afin de récupérer la page au lieu d’effectuer un appel HTTP normal directement vers la page cible.

Pourquoi

J’ai constaté que mes serveurs se voyaient refuser l’accès à un certain nombre de sites commerciaux, ce qui empêchait le rendu des oneboxes. Cela aide essentiellement à tirer parti de la fiabilité de l’API tierce, un peu comme un service de messagerie.

Pourquoi c’est rentable

Vous pouvez utiliser un VPS relativement peu coûteux tout en bénéficiant d’une fonctionnalité de onebox fiable, même si votre adresse IP ou votre agent utilisateur est en quelque sorte « blacklisté ».

Vous n’en avez pas besoin si

Vous générez correctement toutes vos cibles de contenu avec l’installation standard et tous les utilisateurs sont satisfaits.

Prérequis

Vous devez disposer d’un compte auprès d’une API tierce appropriée.

Paramètres

onebox assistant api base address:  https://api.embed.rocks/api/

L’exemple ci-dessus utilise embed.rocks, mais à l’avenir, la prise en charge d’autres API pourrait être ajoutée. Cependant, embed.rocks offre actuellement un bon rapport qualité-prix.

onebox assistant api base query:   ?url=

onebox assistant api options:   &skip=article,description,oembed,imextra&include=source

onebox assistant api page source field:   source

Vous devrez également saisir votre clé API fournie par embed.rocks.

Voir l’exemple ci-dessous

Ce paramètre vous permet d’ignorer la prérecherche (pour vérifier si le crawl direct retourne un résultat) et d’utiliser l’API dès le départ.

image
par défaut DÉSACTIVÉ

Je recommande de définir ce paramètre sur VRAI.

Bien sûr, cela est plus coûteux, mais donne souvent de meilleurs résultats, car il existe des cas où la prérecherche est redirigée vers la mauvaise page parce que vous n’êtes pas considéré comme fiable.

Informations de support

Rappelez-vous, si vous avez déjà tenté de créer une onebox pour un lien, le noyau Discourse mettra en cache le résultat.

Vous pouvez ajouter une chaîne de requête aléatoire à la fin pour contourner le cache : https://mylink.com/todaynews?random=random

Vous pouvez également vérifier que l’API répond avec, par exemple :

curl -X GET "https://api.embed.rocks/api/?url=https%3A%2F%2Fnews.bbc.co.uk%0A&skip=article,description,oembed,imextra&include=source" -H "x-api-key: %%%votre-clé-api%%%"

Vous devez encoder en URL le site que vous appelez (la valeur du paramètre url) en utilisant un site comme celui-ci (non garanti !).

Limitations connues

  • Il a été testé uniquement avec un fournisseur pour le moment et n’a pas été testé sur d’autres. Ce fournisseur est https://embed.rocks (avec qui je n’ai aucune affiliation). Je suis prêt à envisager de prendre en charge davantage de services si le travail est parrainé.

  • Le monkey patching est effectué au niveau de la méthode. Cela remplace plus de code que nécessaire, ce qui augmente le risque que le plugin se brise après une mise à jour du noyau. Cependant, je ne pense pas qu’il y ait un moyen de minimiser cela davantage ?

Comment installer les plugins

Consultez le guide ici : Install plugins on a self-hosted site

Ce dépôt est : https://github.com/merefield/discourse-onebox-assistant

https://github.com/merefield/discourse-onebox-assistant

Tous les retours sont les bienvenus. Veuillez mettre une :étoile: sur GitHub si vous le trouvez utile.

41 « J'aime »

Désolé, je n’ai pas encore eu l’occasion de reconstruire notre site avec cette extension activée, je le ferai ce soir.

@WaitroseCarpark Je n’ai rien rempli de ce genre, voici les étapes que j’ai suivies :

Étape 1 :

Étape 2 :

Étape 3 :

Étape 4 :
Effectuez la vérification robot

Étape 5 :
Ajoutez l’API oEmbed


Signez votre vie

Vérification verte pour oEmbed

Étape 6 :
Obtenez les identifiants dans Paramètres > Basic

Étape 7 :
Obtenez un jeton d’application

Avec les identifiants ci-dessus, exécutez :

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"

Ce qui renvoie :

{"access_token":"378384926723309|xxxxxx","token_type":"bearer"}

Testez votre jeton d’authentification :

curl -X GET \ "https://graph.facebook.com/v9.0/instagram_oembed?url=https://www.instagram.com/p/fA9uwTtkSN/&access_token=xxxx..."

Ce qui renvoie :

{"version":"1.0","author_name":"diegoquinteiro","provider_name":"Instagram","provider_url":"https://www.instagram.com/","type":"rich","width":658,"html":"<blockquote class=\"instagram-media\" data-instgrm-captioned data-instgrm-permalink=\"https://www.instagram.com/p/fA9uwTtkSN/?utm_source=ig_embed&amp;utm_campaign=loading\" ....

Ajoutez-le à Discourse et c’est terminé !

6 « J'aime »

Wow…

Ok, ça a fonctionné…

Merci mec :bowing_man:

4 « J'aime »

Avec le plugin installé ? @Richie

1 « J'aime »

@znedw Merci beaucoup d’avoir pris le temps d’expliquer étape par étape (avec des photos ! :heart_eyes:) comment faire cela ! Ça fonctionne à merveille, du moins à ce que je vois !

3 « J'aime »

avec le plugin installé ?

1 « J'aime »

Je viens seulement de remarquer que vous avez créé ce plugin… Je ne l’utilisais pas, désolé d’avoir détourné votre sujet.

MAIS, je le testerai plus tard aujourd’hui si je trouve un peu de temps libre…

2 « J'aime »

J’ai passé une demi-heure ce soir à essayer toutes sortes de permutations possibles, Robert @merefield

En suivant les étapes fournies par @znedw (merci encore mon ami !), il semble que cette méthode fonctionne aussi bien avec l’assistant Onebox activé qu’avec lui désactivé (via le panneau d’administration, plugins, case à cocher).

Je n’ai pas essayé de reconstruire mon Discourse avec le plugin complètement supprimé.

Peut-être vaut-il la peine de noter que je n’ai pas l’option activée pour « Toujours utiliser le crawl proxy quelle que soit la réponse directe ».

Hors sujet, il semble qu’amazon.co.uk bloque à nouveau toutes sortes de requêtes, à la fois directement (plugin désactivé) et via la page « essayer » d’embed.rocks, qui elle aussi expire :roll_eyes:

3 « J'aime »

Merci. Oui, je m’attendais à ce que cela fonctionne au moins sans « toujours utiliser le proxy ».

2 « J'aime »

En ce qui concerne Amazon, j’utilise toujours manuellement leurs liens d’affiliation, qui ne sont pas bloqués.

L’encadrement en une seule boîte (oneboxing) viole leurs CGU si vous êtes affilié.

Je vous recommande vivement de envisager l’adhésion au programme d’affiliation. Cela ne rapporte pas une fortune, mais cela peut couvrir les frais de serveur et d’envoi de courriels.

1 « J'aime »

Est-il possible d’utiliser ce plugin uniquement pour les liens YouTube ? Je n’arrive pas à comprendre quels paramètres je dois utiliser pour cela.
Et aussi, où puis-je trouver plus d’informations sur les paramètres possibles ?
Merci !

Non. Il faudrait bifurquer le projet et développer davantage le code.

Copiez simplement ceux qui se trouvent dans le premier message (OP) à l’identique. Vous aurez votre propre clé.

2 « J'aime »

Comment puis-je vérifier si le plugin fonctionne et que les requêtes passent bien par https://embed.rocks ?
Je l’ai activé, mais l’erreur persiste.

J’ai testé avec ces vidéos :

https://www.youtube.com/watch?v=_2wfBNUnOVY
https://www.youtube.com/watch?v=qLNhVC296YI
1 « J'aime »

Le tableau de bord sur embed.rocks devrait commencer à refléter vos appels (un compteur local est un plus, mais nous n’en avons pas encore implémenté)

Les deux liens fonctionnent pour moi via le plugin.

Si cela ne fonctionne pas, essayez de vérifier cette option :

image

2 « J'aime »

Tous les paramètres que vous avez sont-ils identiques à ceux de l’image que vous avez fournie ? Peut-être ai-je fait une erreur en les saisissant. Y a-t-il une option pour les copier ?

1 « J'aime »

J’ai ajouté du texte brut à l’OP pour vous.

3 « J'aime »

Merci. J’ai vérifié et tout semblait correct. Je ne vois aucun appel sur la page du tableau de bord dans la section Utilisation. Cela signifie-t-il qu’il y a un problème ? Le nombre d’appels doit-il toujours être visible ?

1 « J'aime »

Vous devriez poser cette question à embed.rocks. À un moment donné, je pourrais ajouter un journalisation supplémentaire au plugin, ce qui pourrait aider. Vous pourriez également configurer votre site avec un niveau de journalisation ‘info’ pour obtenir plus d’informations, car il existe déjà des appels à Rails.logger.info.

1 « J'aime »

Oui, ce serait super. Parce que maintenant j’ai activé le plugin et configuré les paramètres, mais YouTube ne fonctionne pas et il n’y a aucune activité sur le tableau de bord. J’ai envoyé un e-mail au support d’embed.rocks.

1 « J'aime »

Ce plugin fonctionnera-t-il correctement si je stocke les fichiers sur Amazon S3 ?

Je rencontre toujours des difficultés et n’arrive pas à le faire fonctionner. Les vidéos ne sont pas téléchargées, seuls les liens le sont. De plus, aucune information n’apparaît dans le panneau d’utilisation de Embed.rocks.

J’ai un serveur de test. Les fichiers sont stockés localement dessus. Mais le plugin ne fonctionne toujours pas et aucune activité n’est affichée sur le tableau de bord d’utilisation. Cependant, les vidéos sont bien enregistrées sur le site.

Je ne comprends donc pas comment et quoi vérifier pour résoudre le problème.

Merci de m’aider avec vos suggestions.

2 « J'aime »