Discourse API를 사용하여 아바타를 변경하지 못함

전역(Global) 액세스 권한이 있는 API 키를 "모든 사용자(All Users)"에 대해 가지고 있습니다.

다음과 같이 요청을 보내고 있습니다:

$updateAvatarUrl = sprintf("%s/u/%s/preferences/avatar/pick.json", $this->apiHost, $username);
$headers = array(
    "Api-Key: ".$this->apiKey,
    "Api-Username: ".$this->apiUsername
);
$data = array(
    'upload_id' => $uploadId,
    'type' => 'uploaded'
);
$response = Q_Utils::put($updateAvatarUrl, $data, null, null, $headers);

하지만 반환되는 결과는 다음과 같습니다:

{"failed":"FAILED"}

application/json으로 보내는 것도 시도해 보았습니다. 전체 CURL 정보는 다음과 같습니다:

$url = 'https://community.intercoin.app/u/fdhsjkgfs_dghjkl';

Headers:
0:
"Host: community.intercoin.app"
1:
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
2:
"Content-Type: application/x-www-form-urlencoded"
3:
"Content-Length: 28"
4:
"Api-Key: 3cf975095fd50e22e3631dc916c6d2c7694419ed421338dd7bba432ba1e71417"
5:
"Api-Username: system"

body:

upload_id=2159&type=uploaded

Profile - fdhsjkgfs_dghjkl - Intercoin 이 존재하는 것을 확인하실 수 있습니다.

업로드 ID도 실제로 존재하며, 업로드를 수행한 후 다음을 얻습니다:

{
  "id": 2159,
  "url": "https://community.intercoin.app/uploads/intercoin/original/2X/c/ce6121fe1571faa6c41ad28afdf6c30939ffbc56.png",
  "original_filename": "400.png",
  "filesize": 20636,
  "width": 360,
  "height": 360,
  "thumbnail_width": 360,
  "thumbnail_height": 360,
  "extension": "png",
  "short_url": "upload://trIsPeqspDPRwbMsOnjtDCBBMwK.png",
  "short_path": "/uploads/short-url/trIsPeqspDPRwbMsOnjtDCBBMwK.png",
  "retain_hours": null,
  "human_filesize": "20.2 KB"
}

문제가 무엇일까요? 문서에 설명된 대로 따랐는데…

그리고 또, 어째서인지 CURL을 사용해 설정한 후 설명란과 웹사이트 링크가 클릭이 되지 않습니다:

하지만 다른 요약 박스에서는 같은 URL임에도 링크가 정상적으로 작동합니다.

제가 뭘 잘못하고 있는 건가요?

        Q_Utils::put($this->apiHost."/u/$username.json", array(
            'title' => 'Forum Engagement Bot',
            'bio_raw' => 'Powered by https://engageusers.ai',
            'website' => 'https://engageusers.ai'
        ), null, null, $headers);

그리고 마지막으로 .. 포럼 관리 패널에서 요약 상자를 제한된 정보만 표시하는 것이 아니라, 생애 이력, 웹사이트 등 전체 정보를 공개적으로 표시할 수 있는 방법이 있나요?

아마도 해당 사용자가 신뢰 수준 1에 도달했기 때문일 것입니다. 스팸을 방지하기 위해 신규 사용자의 링크는 작동하지 않습니다.

API를 통해 사용자의 신뢰 수준을 설정할 수 있을까요?

여기서 검색해 보니까

가능해 보이네요.

참고로, 원래 질문에 대한 답은 “SSO가 아바타를 덮어쓰기” 옵션이 켜져 있었기 때문이었습니다. 이 옵션을 끄니 문제가 해결되었습니다.

또한 API를 통해 신뢰 수준을 성공적으로 업그레이드했고, 이렇게 하면 전체 요약 상자가 표시됩니다. 감사합니다, 여러분!