Preguntas frecuentes

SDK del directorio de aplicaciones

Preguntas frecuentes

Flujo de SSO

Conservación de la configuración del usuario

Capacidad para utilizar varias cuentas

Errores de hsp.js

Flujo de SSO

Como requisito, esperamos que los desarrolladores utilicen la autenticación de inicio de sesión único para la conexión de la aplicación con Hootsuite, y OAuth para el proveedor de servicios externo.

Este es el flujo de trabajo que la aplicación debe seguir al utilizar SSO para la conexión con Hootsuite:

  • Puede definir que la aplicación utilice SSO en la herramienta de administración para desarrolladores y luego proporcionar una clave secreta compartida.
  • Esto provocará que Hootsuite transmita el ID de usuario de Hootsuite con una comprobación de token para cada interacción con Hootsuite.
  • Esto conservará un registro del usuario de Hootsuite.
  • A continuación, la aplicación tomará ese ID y asignará el ID de Hootsuite al ID de usuario de la aplicación.
  • Si no hay ningún registro, la aplicación solicitará que se realice la autenticación (OAuth en su aplicación).

Conservación de la configuración del usuario

Después de que la columna se autentique con Hootsuite, se vuelven a transmitir los siguientes parámetros al marco flotante de la columna:

  1. lang=en
  2. timezone=7200
  3. pid=2823         // placement ID, unique for each stream per user
  4. uid=1234567      // Hootsuite user ID
  5. i=1234567        // user identifier (optionally entered by user upon App installation)
  6. ts=1318362023    // timestamp
  7. token=123abc...  // security token (sha1 hash)

Los desarrolladores de aplicaciones tienen distintas posturas en lo que respecta a cómo almacenar esta información de los usuarios. El método preferido es realizar la autenticación en una tabla de usuario; no obstante, también se puede insertar una cookie en el navegador del usuario. Después, puede asignar un nombre único a cada sesión, por ejemplo. nombreaplicación_512773 (512773 es el ID de la aplicación o PID).

Al utilizar SSO como método de autenticación con Hootsuite, el acceso de la aplicación inicial se muestra de la siguiente forma:

/index.php?lang=en&timezone=-25200&pid=512773&uid=209524&isSsl=0&i=209524&ts=1350591402&token=6d20004764b07cefed6fd8892026d22ce

A continuación, para todas las solicitudes posteriores, puede agregar lo siguiente a la parte de la consulta de la URL:

/index.php?lang=en&timezone=-25200&pid=515068&uid=209524

Capacidad para utilizar varias cuentas

Para poder admitir varias cuentas en diferentes columnas (la capacidad de que un usuario se autentique en cada columna con una cuenta única), puede asociar el token de acceso al ID de la aplicación o la columna. Cada columna nueva agrega resultados en una llamada para realizar la autenticación con su servicio y, aunque el usuario ya haya agregado la aplicación y se haya autenticado en una columna diferente, la aplicación solicitará al usuario que se vuelva a autenticar.

Errores de hsp.js

hsp.init no debe estar en todas las página, solo en la inicial de la aplicación, además, solo puede llamarse a esta función una vez. Cuando haya iniciado la función, debe transmitir el PID y el UID a las sucesivas páginas que el usuario visite en la aplicación. Tanto el UID como el PID deben transmitirse como parte de URL: /index.php?theme=magnum&lang=en&timezone=-25200&pid=515068&uid=209524.

Después de cargar mi columna de aplicaciones, recibo el siguiente error de JavaScript: "Unsafe JavaScript attempt to access frame with URL https://abc.abc.abc from frame with URL https://xyz.xyz.xyz Domains, protocols and ports must match" (Intento no seguro de JavaScript de acceso al marco con la URL https://abc.abc.abc desde el marco con la URL https://xyz.xyz.xyz. Los dominios, protocolos y puertos deben coincidir).

  1. Asegúrese de que no hay ningún error en la página de su complemento o columna de aplicaciones.
  2. Asegúrese de que su complemento o columna de aplicaciones esté utilizando la función hsp.js correcta. https://d2l6uygi1pgnys.cloudfront.net/jsapi/2-0/hsp.js
  3. Asegúrese de que la cadena apiKey de hsp.init() sea correcta.
  4. Si el panel de control de Hootsuite se encuentra en el modo SSL, asegúrese de que ha proporcionado la URL segura del marco flotante correcta en la página de configuración de la columna de aplicaciones. Asegúrese de que la URL del receptor de aplicaciones también utiliza SSL. Es importante que hsp.js se cargue en HTTPS.

Recibo el mensaje de error "I am getting 'API Key: xxxxxxxxxxxxxxxxxxx is not correct, please check your app settings" (La clave de API xxxxxxxxxxxxxxxxxxx no es correcta; compruebe la configuración de la aplicación) en el panel de control.

Asegúrese de que la cadena apiKey de hsp.init() sea correcta.

Recibo el mensaje de error "I am getting 'API Key: is not correct, please check your app settings" (no es correcta; compruebe la configuración de la aplicación) en el panel de control.

Asegúrese de que la cadena apiKey de hsp.init() no está vacía. Si utiliza hsp.js en la ventana emergente o en otras páginas de marco flotante, asegúrese de que no se vuelva a llamar a hsp.init(). La única función hsp que puede utilizarse fuera de la página del complemento o la columna de aplicaciones es hsp.cloaseCustomPopup(apiKey, pid) (no requiere el proceso Init).

Después de cargar mi columna de aplicaciones, recibo el siguiente error de JavaScript: "Uncaught TypeError: Cannot call method 'appendChild' of null" (Imposible obtener el tipo de error: no se puede llamar al método appendChild de un valor nulo).

Compruebe su función hsp.init. Asegúrese de que se llama a esta después de que la página se haya cargado por completo; por ejemplo, coloque la función dentro de $(document).ready().

¿Cómo se puede utilizar la función hsp en mi página de ventana emergente personalizada?

Si la ventana emergente y el complemento o la columna de aplicaciones se encuentran en el mismo dominio, se recomienda que la ventana emergente utilice la siguiente función JavaScript para volver a comunicarse con el complemento o la columna y ejecutar la función hsp desde allí: window.parent.frames[apiKey_pid].hsp.some_function().