Pregunta importante sobre la importación de usuarios

Hola, comunidad. Llevo un par de semanas aprendiendo y recreando un script de importación para mi sitio en Livestreet CMS. Ya terminé de escribir el script; solo falta pulirlo y hacer un pull request.

También he importado a todos los usuarios, con excepción de aquellos que utilizan la autorización a través de servicios. La pregunta es: ¿Cómo importar a esos usuarios desde un sitio donante a Discourse que utilizan la autorización mediante Facebook o Google? Quiero encontrar la solución más elegante. El problema también es que algunos usuarios de Facebook no tienen correo electrónico.

¡Bonus! Importación de “me gusta” con el parámetro date_added.

También encontré otro método para importar “me gusta” con fecha, ya que el método antiguo en otros scripts no funciona.

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] es "me gusta"
end