[RUBY] [Rails] Comment convertir l'URI de l'image envoyée par http en https lors de l'utilisation de l'API Twitter

introduction

Je m'appelle yuki. Grâce à DMMWEBCAMP, je travaille maintenant en tant qu'ingénieur WEB, rassemblant mes amis pour développer des services, enseignant la programmation en tant que tuteur et profitant de ma vie d'ingénieur au quotidien.

Nous fournissons également une assistance et des questions d'erreur pour ceux qui visent des inexpérimentés, donc si vous êtes intéressé, veuillez contacter DM.

Hypothèses et problèmes

J'ai eu un problème lorsque j'utilisais Rails comme API et que je collectais des images en utilisant gem twitter. L'URI de l'image acquise par l'API Twitter commence par http, et un avertissement de" not safe "est apparu sur le site où la communication https est possible.

Au fait, à ce moment-là, j'obtenais cette erreur sur la console.

Mixed Content: The page at 'https://hogehoge.com' was loaded over HTTPS, but requested an insecure image 'http://hogehoge.net/hoge.jpg. This content should also be served over HTTPS.

Cela semble être appelé contenu mixte. Au début, je ne pouvais pas penser à un moyen de le mettre en place cette fois, alors j'ai réussi à le faire à la réception, mais je l'ai réparé car cela devrait être fait à l'arrière.

Contre-mesures

examples_controller.rb


  def show
    client = Authorization.init #C'est une classe unique. Contient des informations sur le client.
    @data = client.search("#Balises de hachage que vous souhaitez collecter", result_type: "recent").take(4).collect do |tweet|
      {
        "image": "#{tweet.user.profile_image_url.to_s.sub('http', 'https')}",
        "name": "#{tweet.user.name}",
        "text": "#{tweet.full_text}",
        "tweet_link": "#{tweet.uri}"
      }
    end
    render json: {tweet: @data}
  end

Pour expliquer ce que nous faisons, nous collectons 4 tweets avec une balise de hachage spécifique et les renvoyons sous forme de données json. La partie importante cette fois est "" image ":" # {tweet.user.profile_image_url.to_s.sub ('http', 'https')} ",`.

Cela a été enseigné par un autre ingénieur, mais quand je regarde ʻuser.profile_image_url` sur la console rails, le résultat est retourné sous forme de données (?) Que je ne comprends pas un peu, mais par to_s C'est devenu une belle URL.

J'ai l'impression de convertir en appliquant la sous-méthode là-bas.

Notez que vous utilisez sub au lieu de gsub. La raison est que s'il y a une chaîne de caractères "http" dans une partie de l'URL de l'image (autre que le début), elle sera convertie de manière incorrecte et l'image ne sera pas affichée.

J'espère que cela aide quelqu'un.

Recommended Posts

[Rails] Comment convertir l'URI de l'image envoyée par http en https lors de l'utilisation de l'API Twitter
Comment faire de https le schéma de l'URL générée par l'assistant d'URL de Rails
[Rails] Comment afficher une liste de messages par catégorie
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
Pour implémenter la publication d'images à l'aide de rails
Comment convertir un tableau de chaînes en un tableau d'objets avec l'API Stream
[Rails] Comment décider de la destination par "voies ferrées"
Comment rediriger vers http-> https lorsque SSL est activé dans l'environnement Rails × Heroku
[Rails] Comment se connecter à une API externe à l'aide du client HTTP (j'ai essayé de me connecter à l'API Qiita)
Comment passer à l'écran des détails en cliquant sur l'image
Comment obtenir le nom de classe de l'argument de LoggerFactory.getLogger lors de l'utilisation de SLF4J en Java
[Rails] Comment changer le nom de colonne de la table
Comment demander en passant un tableau à une requête avec le client HTTP de Ruby
[Rails] Comment obtenir le contenu des paramètres forts
Comment juger le clic de n'importe quelle zone de l'image
[Rails] Solution lorsque l'erreur "visite de la méthode non définie" "apparaît lors de l'utilisation de Capybara avec Rspec
[Rails] Comment afficher les images dans la vue
[Rails] Comment afficher les prévisions météo de l'adresse enregistrée en japonais en utilisant OpenWeatherMap
Comment résoudre le problème lorsque la valeur n'est pas envoyée lorsque le formulaire est désactivé dans les rails et envoyé
Comment définir des variables d'environnement lors de l'utilisation de Payjp avec Rails
[Enum] Utilisez des rails enum pour améliorer la lisibilité des données
[Rails] Enregistrez-vous par attribut du même modèle en utilisant Devise
Lorsque vous utilisez le constructeur de la classe Date de Java, la date avance de 1900.
Comment obtenir les informations les plus longues de Twitter à partir du 12/12/2016
Comment lire un fichier MIDI à l'aide de l'API Java Sound
Emplacement de la définition de la méthode Résumé de la vérification Lorsque défini dans le projet et Rails / Gem
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
[Rails / Heroku / MySQL] Comment réinitialiser la base de données de l'application Rails sur Heroku
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
Comment réduire JsonModel of Item à l'aide de l'expression Forge BlockState
[Rails] Comment omettre l'affichage de la chaîne de caractères de la méthode link_to
[Rails] Comment changer le titre de la page du navigateur pour chaque page
Un moyen simple de créer une classe de mappage lors de l'utilisation de l'API
Cliquez sur l'image dans le champ file_field de Rails pour télécharger et remplacer l'aperçu
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
[Rails] Comment résoudre le problème d'écrasement de l'image par défaut lors de l'édition sans télécharger l'image [Active Storage]
Comment définir l'image pour dessiner à gauche / à droite du bouton à l'aide de la police d'icône (Iconics)
[Ruby on Rails] Lors de la première connexion ・ Comment diviser l'écran en deux à l'aide de jQuery
Comment décorer CSS sur les boutons radio de rails6 form_with (helper)
Comment mettre en œuvre un diaporama en utilisant Slick in Rails (un par un et plusieurs par un)
[Rails] J'étais accro aux paramètres nginx lors de l'utilisation d'Action Cable.
Une histoire à laquelle j'étais accro lors du test de l'API à l'aide de MockMVC
Les débutants de Gorigori ont résumé comment utiliser la base de données à l'aide de la console rails Ntiunus
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Comment trouver le nombre total de pages lors de la pagination en Java
Comment contraindre l'action de la destination de transition lorsqu'elle n'est pas connectée
Comment résoudre la construction de l'environnement local de Ruby on Rails (MAC)!
[Rails] Comment résoudre le décalage temporel de created_at après la méthode de sauvegarde
Modifiez la destination d'enregistrement de l'image en S3 dans l'application Rails. Partie 2
[Rails] Que faire lorsque l'image Refile n'est pas affichée lors de l'écriture du traitement au moment de l'erreur de routage
[Rails] Comment convertir ERB en Haml