Wichtige Frage zum Importieren von Benutzern

Hallo Community. Seit einigen Wochen lerne ich und erstelle ein Import-Skript für meine Site auf Livestreet CMS neu. Das Schreiben des Skripts habe ich bereits abgeschlossen; es bleibt nur noch, es zu bereinigen und einen Pull Request einzureichen.

Ich habe auch alle Benutzer importiert, mit Ausnahme derer, die sich über Dienste autorisieren. Die Frage lautet: Wie importiert man Benutzer von einer Quellsite zu Discourse, die sich über Facebook oder Google autorisieren? Ich möchte die eleganteste Lösung finden. Das Problem besteht zudem darin, dass einige Facebook-Benutzer keine E-Mail-Adresse haben.

Bonus! Importieren von Likes mit dem Parameter date_added.

Ich habe auch eine weitere Methode gefunden, um Likes mit einem Datum zu importieren, da die alte Methode in anderen Skripten nicht funktioniert.

likes = mysql_query(<<-SQL
    SELECT target_id
         , user_voter_id
         , vote_date
         , target_type
      FROM #{TABLE_PREFIX}vote
     WHERE vote_direction = 1
     ORDER BY vote_date
SQL
).to_a

likes.each do |l|
  next unless user_id = user_id_from_imported_user_id(l["user_voter_id"])
  next unless post_id = post_id_from_imported_post_id("post-#{l["target_id"]}") 
  next unless user = User.find_by(id: user_id)
  next unless post = Post.find_by(id: post_id)
  PostActionCreator.create(user, post, PostActionType.types[2], created_at: Time.at(l["vote_date"])); #PostActionType.types[2] ist "Like"
end