No se puede cambiar el avatar usando la API de Discourse

Tengo una clave de API que tiene acceso “Global”, para “Todos los Usuarios”.

Hago esto:

$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);

Pero el resultado que obtengo es:

{"failed":"FAILED"}

También intenté enviarlo como application/json. Aquí está la información completa de 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

Se puede ver que Profile - fdhsjkgfs_dghjkl - Intercoin existe.
El ID de carga también existe, esto es lo que obtengo después de la carga:

{
  "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"
}

Entonces, ¿cuál es el problema? Seguí lo que dicen las docs…

1 me gusta

Y además, por alguna razón, los enlaces en la descripción y el sitio web no se pueden hacer clic después de que los configuro usando CURL:

Pero en otros cuadros de resumen, sí lo son. Con las mismas URL.

¿Qué estoy haciendo mal aquí?

        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 me gusta

Y finalmente… ¿hay alguna forma en el panel de control del foro de hacer que las cajas de resumen aparezcan completamente para el público (con biografía, sitio web, etc.) en lugar de solo con información limitada?

Quizás sea porque esos usuarios alcanzaron el nivel de confianza 1. Para prevenir spam, los enlaces de los usuarios nuevos no funcionan.

¿Es posible establecer el nivel de confianza de un usuario a través de la API?

Acabo de buscar aquí y encontré

Así que parece posible.

2 Me gusta

Por cierto, la respuesta a la pregunta original fue que “SSO reemplaza el avatar” estaba activado. Desactivarlo resolvió el problema.

También pude actualizar con éxito el nivel de confianza a través de la API y esto hace que aparezca el cuadro de resumen completo. ¡Gracias, familia!

5 Me gusta