[RUBY] [Rails] So konvertieren Sie den URI des von http gesendeten Bildes in https, wenn Sie die Twitter-API verwenden

Einführung

Mein Name ist yuki. Dank DMMWEBCAMP arbeite ich jetzt als WEB-Ingenieur, versammle meine Freunde, um Dienstleistungen zu entwickeln, unterrichte Programmieren als Tutor und genieße jeden Tag mein Ingenieurleben.

Wir bieten auch Support- und Fehlerfragen für diejenigen, die unerfahren sind. Wenn Sie interessiert sind, wenden Sie sich bitte an DM.

Annahmen und Probleme

Ich hatte ein Problem, als ich Rails als API verwendete und Bilder mit "gem twitter" sammelte. Die URI des von der Twitter-API erfassten Bildes beginnt mit "http", und auf der Site, auf der eine https-Kommunikation möglich ist, wurde die Warnung "nicht sicher" angezeigt.

Übrigens habe ich damals diesen Fehler auf der Konsole bekommen.

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.

Es scheint gemischter Inhalt zu sein. Zuerst konnte ich mir diesmal keine Möglichkeit vorstellen, es zusammenzustellen, also habe ich es an der Rezeption geschafft, aber ich habe es repariert, weil es hinten gemacht werden sollte.

Gegenmaßnahmen

examples_controller.rb


  def show
    client = Authorization.init #Dies ist eine einzigartige Klasse. Enthält Kundeninformationen.
    @data = client.search("#Hash-Tags, die Sie sammeln möchten", 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

Um zu erklären, was wir tun, sammeln wir 4 Tweets mit einem bestimmten Hash-Tag und geben sie als JSON-Daten zurück. Der wichtige Teil dieses Mal ist "image": "# {tweet.user.profile_image_url.to_s.sub ('http', 'https')}", ".

Dies wurde von einem anderen Ingenieur gelehrt, aber wenn ich auf der Rails-Konsole user.profile_image_url betrachte, wird das Ergebnis in Form von Daten (?) Zurückgegeben, die ich nicht ein wenig verstehe, sondern von to_s Es wurde eine schöne URL.

Es fühlt sich an, als würde ich konvertieren, indem ich dort die Submethode anwende.

Beachten Sie, dass Sie sub anstelle von gsub verwenden. Der Grund dafür ist, dass eine Zeichenfolge "http" in einem Teil der URL des Bildes (außer dem Anfang) falsch konvertiert wird und das Bild nicht angezeigt wird.

Ich hoffe es hilft jemandem.

Recommended Posts

[Rails] So konvertieren Sie den URI des von http gesendeten Bildes in https, wenn Sie die Twitter-API verwenden
So machen Sie https zum Schema der URL, die vom URL-Helfer von Rails generiert wurde
[Rails] So zeigen Sie eine Liste der Beiträge nach Kategorie an
[Rails 5] Anzeigen des Bildschirms zum Ändern des Kennworts bei Verwendung von devise
So implementieren Sie die Image-Veröffentlichung mithilfe von Schienen
So konvertieren Sie ein Array von Strings mit der Stream-API in ein Array von Objekten
[Rails] So bestimmen Sie das Ziel anhand von "Rails-Routen"
So leiten Sie zu http-> https um, wenn SSL in der Rails × Heroku-Umgebung aktiviert ist
[Rails] So stellen Sie über den HTTP-Client eine Verbindung zu einer externen API her (ich habe versucht, eine Verbindung zur Qiita-API herzustellen)
So wechseln Sie zum Detailbildschirm, indem Sie auf das Bild klicken
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
[Rails] So ändern Sie den Spaltennamen der Tabelle
Anfordern durch Übergeben eines Arrays an eine Abfrage mit dem HTTP-Client von Ruby
[Rails] So erhalten Sie den Inhalt starker Parameter
So beurteilen Sie den Klick eines beliebigen Bildbereichs
[Rails] Lösung, wenn bei Verwendung von Capybara mit Rspec der Fehler "undefined method` visit '" angezeigt wird
[Schienen] So zeigen Sie Bilder in der Ansicht an
[Rails] So zeigen Sie die Wettervorhersage der registrierten Adresse auf Japanisch mit OpenWeatherMap an
So lösen Sie das Problem, wenn der Wert nicht gesendet wird, wenn das Formular in Schienen deaktiviert und gesendet wird
Festlegen von Umgebungsvariablen bei Verwendung von Payjp mit Rails
[Enum] Verwenden Sie Rails Enum, um die Lesbarkeit von Daten zu verbessern
[Rails] Registrieren Sie sich mit Devise nach Attributen desselben Modells
Bei Verwendung des Konstruktors der Date-Klasse von Java wird das Datum um 1900 vorverlegt.
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
So spielen Sie eine MIDI-Datei mit der Java Sound API ab
Speicherort der Methodendefinition Zusammenfassung der zu überprüfenden Informationen Wenn im Projekt und in Rails / Gem definiert
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
[Rails / Heroku / MySQL] So setzen Sie die Datenbank der Rails-App auf Heroku zurück
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
So reduzieren Sie JsonModel of Item mithilfe des Forge-Ausdrucks BlockState
[Rails] So lassen Sie die Anzeige der Zeichenfolge der link_to-Methode weg
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
Einfache Möglichkeit zum Erstellen einer Zuordnungsklasse bei Verwendung der API
Ersetzen Sie die Vorschau durch Hochladen, indem Sie auf das Bild in file_field of Rails klicken
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
[Rails] So lösen Sie das Problem, dass das Standardbild beim Bearbeiten überschrieben wird, ohne das Bild hochzuladen [Active Storage]
So stellen Sie das Bild mithilfe der Symbolschriftart (Symbole) links / rechts von der Schaltfläche auf zeichnbar ein
[Ruby on Rails] Beim ersten Anmelden ・ So teilen Sie den Bildschirm mit jQuery in zwei Hälften
So dekorieren Sie CSS auf Rails6 form_with (Hilfs-) Optionsfeldern
So implementieren Sie eine Diashow mit Slick in Rails (einzeln und mehrfach nacheinander)
[Rails] Ich war süchtig nach den Nginx-Einstellungen, als ich Action Cable verwendete.
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Gorigori-Anfänger fassten zusammen, wie die Datenbank mit der Rails-Konsole Ntiunus betrieben wird
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind
So lösen Sie die lokale Umgebungskonstruktion von Ruby on Rails (MAC)!
[Rails] So lösen Sie die Zeitverzögerung von created_at nach der Speichermethode
Ändern Sie das Speicherziel des Bildes in der Rails-App in S3. Teil 2
[Schienen] Was tun, wenn das Refile-Bild beim Schreiben der Verarbeitung zum Zeitpunkt des Routing-Fehlers nicht angezeigt wird?
[Rails] Wie man von erb zu haml konvertiert