From 7213990a26560a47aed5167831a62c157941fad0 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Sat, 12 Oct 2019 11:23:33 +0800 Subject: [PATCH] wechat oauth: avatar download --- app/libs/util.rb | 12 ++++++++++++ .../oauth/create_or_find_wechat_account_service.rb | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/app/libs/util.rb b/app/libs/util.rb index 72e728ab9..84f14a6c0 100644 --- a/app/libs/util.rb +++ b/app/libs/util.rb @@ -1,3 +1,5 @@ +require 'open-uri' + module Util module_function @@ -29,6 +31,16 @@ module Util end end + def download_file(url, save_path) + data = open(url, &:read) + file = File.new(save_path, 'w+') + file.binmode + file << data + file.flush + file.close + file + end + def logger_error(exception) Rails.logger.error(exception.message) exception.backtrace.each { |message| Rails.logger.error(message) } diff --git a/app/services/oauth/create_or_find_wechat_account_service.rb b/app/services/oauth/create_or_find_wechat_account_service.rb index bb03c9f9c..d5c22a2f2 100644 --- a/app/services/oauth/create_or_find_wechat_account_service.rb +++ b/app/services/oauth/create_or_find_wechat_account_service.rb @@ -33,6 +33,10 @@ class Oauth::CreateOrFindWechatAccountService < ApplicationService gender = result['sex'].to_i == 1 ? 0 : 1 user.create_user_extension!(gender: gender) + + # 下载头像 + avatar_path = Util::FileManage.source_disk_filename(user) + Util.download_file(result['headimgurl'], avatar_path) end new_open_user= OpenUsers::Wechat.create!(user: user, uid: result['unionid'])