Pergunta importante sobre importação de usuários

Olá, comunidade. Estou aprendendo e recriando um script de importação para o meu site no Livestreet CMS há algumas semanas. Já terminei de escrever o script; agora falta apenas limpá-lo e fazer um pull request.

Também já importei todos os usuários, exceto aqueles que utilizam autorização por meio de serviços externos. A pergunta é: Como importar para o Discourse, a partir de um site doador, os usuários que utilizam autorização via Facebook ou Google? Quero encontrar a solução mais elegante. O problema adicional é que alguns usuários do Facebook não possuem e-mail.

Bônus! Importação de curtidas com o parâmetro date_added.

Também encontrei outro método para importar curtidas com data, já que o método antigo em outros scripts não 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] é curtida
end