Discourse 使用 DiscourseConnect 调用接口 admin/users/sync_sso 404 错误

在对用户数据通过 SSO 同步的时候,调用提示 404 错误。

我们使用的是 Java 的代码。

如上图,返回显示的代码为 404。

问题原因

出现上面错误的原因是安装的 Discourse 实例的 discourse connect 没有启用。

当这个选项不启用的话,API 调用的同步就会显示 404 没有找到。

启用后的就会显示其他的信息。

下图是当上面的接口调用成功后显示的 200 代码。

API 也会返回一个完整的用户相关数据。

数据结构是 JSON 的。

其实内容还蛮多的,你可以用这个把数据同步回 SSO 单点登录服务器上。

{
  "id": 17,
  "username": "info.visafn.sso",
  "name": "Info Visafn Sso",
  "avatar_template": "/letter_avatar_proxy/v4/letter/i/7ba0ec/{size}.png",
  "active": true,
  "admin": false,
  "moderator": false,
  "last_seen_at": "2024-05-22T20:14:45.926Z",
  "last_emailed_at": "2024-05-22T20:32:54.369Z",
  "created_at": "2024-05-21T18:53:53.081Z",
  "last_seen_age": 87821.707032433,
  "last_emailed_age": 86733.264398046,
  "created_at_age": 179074.552034788,
  "trust_level": 1,
  "manual_locked_trust_level": null,
  "title": null,
  "time_read": 0,
  "staged": false,
  "days_visited": 1,
  "posts_read_count": 0,
  "topics_entered": 0,
  "post_count": 0,
  "can_send_activation_email": true,
  "can_activate": false,
  "can_deactivate": true,
  "ip_address": null,
  "registration_ip_address": null,
  "can_grant_admin": true,
  "can_revoke_admin": false,
  "can_grant_moderation": true,
  "can_revoke_moderation": false,
  "can_impersonate": true,
  "like_count": 0,
  "like_given_count": 0,
  "topic_count": 0,
  "post_edits_count": null,
  "flags_given_count": 0,
  "flags_received_count": 0,
  "private_topics_count": 1,
  "can_delete_all_posts": true,
  "can_be_deleted": true,
  "can_be_anonymized": true,
  "can_be_merged": true,
  "full_suspend_reason": null,
  "silence_reason": null,
  "penalty_counts": {
    "silenced": 0,
    "suspended": 0
  },
  "next_penalty": "2024-05-24T20:38:27.655Z",
  "primary_group_id": null,
  "badge_count": 1,
  "warnings_received_count": 0,
  "bounce_score": 0,
  "reset_bounce_score_after": null,
  "can_view_action_logs": true,
  "can_disable_second_factor": true,
  "can_delete_sso_record": true,
  "api_key_count": 0,
  "external_ids": {},
  "single_sign_on_record": {
    "user_id": 17,
    "external_id": "1",
    "created_at": "2024-05-21T18:53:53.280Z",
    "updated_at": "2024-05-21T18:56:21.866Z",
    "external_username": "info.visafn.sso",
    "external_name": null,
    "external_avatar_url": null,
    "external_profile_background_url": null,
    "external_card_background_url": null
  },
  "approved_by": null,
  "suspended_by": null,
  "silenced_by": null,
  "groups": [
    {
      "id": 10,
      "automatic": true,
      "name": "trust_level_0",
      "display_name": "trust_level_0",
      "user_count": 14,
      "mentionable_level": 0,
      "messageable_level": 0,
      "visibility_level": 1,
      "primary_group": false,
      "title": null,
      "grant_trust_level": null,
      "incoming_email": null,
      "has_messages": false,
      "flair_url": null,
      "flair_bg_color": null,
      "flair_color": null,
      "bio_raw": null,
      "bio_cooked": null,
      "bio_excerpt": null,
      "public_admission": false,
      "public_exit": false,
      "allow_membership_requests": false,
      "full_name": null,
      "default_notification_level": 3,
      "membership_request_template": null,
      "members_visibility_level": 0,
      "can_see_members": true,
      "can_admin_group": true,
      "publish_read_state": false
    },
    {
      "id": 11,
      "automatic": true,
      "name": "trust_level_1",
      "display_name": "trust_level_1",
      "user_count": 14,
      "mentionable_level": 0,
      "messageable_level": 0,
      "visibility_level": 1,
      "primary_group": false,
      "title": null,
      "grant_trust_level": null,
      "incoming_email": null,
      "has_messages": false,
      "flair_url": null,
      "flair_bg_color": null,
      "flair_color": null,
      "bio_raw": null,
      "bio_cooked": null,
      "bio_excerpt": null,
      "public_admission": false,
      "public_exit": false,
      "allow_membership_requests": false,
      "full_name": null,
      "default_notification_level": 3,
      "membership_request_template": null,
      "members_visibility_level": 0,
      "can_see_members": true,
      "can_admin_group": true,
      "publish_read_state": false
    }
  ]
}