우리는 먼저 포럼과 메시지 기능을 위해 웹사이트에 Discourse API를 통합했습니다. 그리고 모든 사용자가 자동으로 Discourse 사용자 계정을 보유하여, 포럼 외에도 메시지 기능을 일반적으로 사용할 수 있기를 원했습니다. 이것이 일반적으로 가능한가요? 첫째, 사용자를 복제(clone)하는 것과 둘째, 포럼 외부에서 Discourse의 메시지 기능을 사용하는 것이 가능한지 알고 싶습니다.
현재 사이트에 OAuth가 있나요? 있다면 계정 이관이 훨씬 쉬워질 것입니다. 사용자가 단순히 "기존 사이트로 로그인"을 클릭하면 즉시 새 계정이 생성되기 때문입니다.
Discourse 메시징을 플랫폼 외부에서 사용할 수 있는 방법이 있는지, 그리고 그렇게 하려면 복잡한 프로그래밍이 필요한지 모르겠습니다.
Falco
(Falco)
7월 14, 2022, 2:19오후
3
그것은 확실히 가능합니다. 저희 마이그레이션 스크립트도 비슷한 방식으로 대량 사용자 생성을 수행합니다:
mysql_query(
"SELECT id, username, realname name, url website, email email, registered created_at,
registration_ip registration_ip_address, last_visit last_visit_time,
last_email_sent last_emailed_at, location, group_id, signature bio
FROM #{FLUXBB_PREFIX}users
LIMIT #{BATCH_SIZE}
OFFSET #{offset};",
)
break if results.size < 1
next if all_records_exist? :users, results.map { |u| u["id"].to_i }
create_users(results, total: total_count, offset: offset) do |user|
{
id: user["id"],
email: user["email"],
username: user["username"],
name: user["name"],
created_at: Time.zone.at(user["created_at"]),
website: user["website"],
API에 익숙하시다면, 이를 통해 새로운 사용자를 생성할 수도 있습니다: Discourse API Docs
@Falco님과 @crcoli7307님 , 답변해 주셔서 감사합니다! 이 방법을 꼭 시도해 보고, 우리 페이지 전체에서도 개인 메시지 기능이 정상적으로 작동하는지 확인해 보겠습니다.