API DivShare- poner un box de Divshare en newreply y newthread.II
IMPORTANTE!!! Necesitas una cuenta de DivShare. La API DivShare permite integrar fácilmente nuestros servicios de almacenamiento y distribución en ...

IMPORTANTE!!!

Necesitas una cuenta de DivShare.


La API DivShare permite integrar fácilmente nuestros servicios de almacenamiento y distribución en tu foros.Puedes crear un widget que permite a los usuarios acceder a sus cuentas y navegar por sus archivos, o puedes utilizar DivShare como el backend para tu propio sitio de medios sociales. Con pleno acceso al expediente de información y la posibilidad de cargar a distancia, el único límite a la API es tu propia imaginación.



Contenido

* Inicio Rápido
* Introducción
* Configuración del cliente
* Inicio de sesión
* Obtener información de usuario
* Obtener archivos de un usuario
* Conseguir una carpeta de archivos
* Obtención de archivos específicos
* Los enlaces de descarga e incrustar el código
* Subida
* Cierre de sesión


Desarrollo Avanzado

* Introducción
* Posteando al servidor
* Generación de una firma
* Formatos XML de Respuesta

o login
o get_user_info
o Archivo métodos
o get_upload_ticket
o Cierre de sesión
o Gestión de errores


La API DivShare


La API de DivShare, o interfaz de programación de aplicaciones, permite a los desarrolladores web interactuar con bases de datos DivShare para recibir información y subir archivos para su uso en sus propias aplicaciones. Si eres un programador web, esta página es para ti si, echas un vistazo a algunas de nuestras otras opciones de integración.

Inicio Rápido

Hemos desarrollado una biblioteca de cliente que funciona en PHP 4, y te animamos a presentar tus propias bibliotecas en otros idiomas, lo que vamos a publicar aquí para que todos lo puedan usar. Inicio Rápido

Hemos desarrollado una biblioteca de cliente que funciona en PHP 4, y te animamos a presentar tus propias bibliotecas en otros idiomas, lo que vamos a publicar aquí para que todos lo usar. Descargue el programa de biblioteca ZIP aquí:

Biblioteca de Cliente de PHP 4
Para preguntas y debate, echa un vistazo a Grupo API Google o mandanos un e-mail para pedir Soporte

Introducción

La API DivShare se compone de dos elementos principales - la primera es una secuencia de comandos en nuestro servidor que, cuando se envíe las consultas adecuadas, devolverá la información acerca de los archivos DivShare y usuarios.Esta respuesta viene en forma de XML , y debe cumplir con las normas REST .La segunda parte de la API es el script que se ejecuta en el servidor, que envía las consultas a nuestro script, y luego interpreta la respuesta.Esto se llama una biblioteca de cliente, y el código puede variar en función del idioma que utiliza en su servidor. A los efectos de esta documentación, nos centraremos en el cliente PHP 4 creados por nuestros propios desarrolladores.



Con nuestra API, tu puedes:
• Ingresar a una cuenta de usuario.
• Obtener información sobre los archivos del usuario
• Obtener información sobre la cuenta del usuario
• Cargar archivos nuevos a la cuenta



Para usarlo, se necesita:
• Conocimientos Intermedio de programación web
• Una clave de la API y clave secreta, que puede generar en tu cuenta de
Mi Página

Con la API, puede crear:
• Aplicaciones y widgets para gestionar las cuentas de DivShare
• Media compartir los sitios que utilizan DivShare como el backend
• Su propio video incrustado, audio, diapositivas y solución de documentos, integrada en tu sitio.


Configurar el cliente de la API

En nuestro ejemplo PHP, el cliente de la API no es más que una PHP class que incluya en su script y luego crear una instancia como un objeto.Una vez que hayas creado ese objeto, puedes utilizar sus funciones para enviar fácilmente los datos y recuperar datos desde el servidor de DivShare. Grab the client library from the section, and add it to your script with this code: Agarra la biblioteca de cliente desde el Quick Start de la sección, y añadirlo a tu script con este código:
Código PHP:
$my_api_key  = [API KEY];
$my_secret = [CLAVE SECRETA];

require 
'ds_client_library.php' / / sustituir esta por la ruta real a su biblioteca
$ds 
= new divshare_api($my_api_key$my_secret); 

Puede generar una clave de API y la clave secreta en su cuenta de Mi Página. Utilice una clave diferente para cada aplicación a desarrollar, ya que podemos añadir la identificación de información a cada tecla (nombre y la URL de la aplicación, por ejemplo) en el futuro.

Ahora tiene un objeto llamado $ divshare_api ds, que puede utilizar en toda la página.Envío de la clave de la API y la clave secreta como argumentos es necesario identificar la aplicación para el servidor.Por seguridad, nunca se debe enviar una clave secreta a través de Internet - solo debe residir en su código al lado del servidor.Ahora, vamos a hacer nuestra primera llamada a la API.

Inicio de sesión

Método: Login

Para obtener cualquier información útil desde el servidor, tendrás que iniciar sesión para una cuenta de usuario.Dependiendo del propósito de su aplicación, es posible acceder directamente a tu cuenta de servidor, o puedes hacer que los usuarios envíen sus datos a través de un formulario.Si acepta entrada de datos de usuario a través de su sitio, no podrás mantener estos datos en modo alguno, y debes indicar explícitamente esta política en el formulario de entrada.


Código PHP:
$email = [E-MAIL];
$password = [CONTRASEÑA];

$api_session_key $ds->login($email$contraseña);

if (
$api_session_key) {
// Estás registrado! 
} else {
// Hubo un error de login 


En caso de éxito, el API devolverá una clave de sesión de la API, que es única para este usuario y esta solicitud.Necesitarás esta para seguir haciendo llamadas a la API, y puedes usarlo para acceder a una cuenta de usuario en las páginas de futuro sin tener que enviar la dirección de correo electrónico y contraseña.Si estás construyendo un cliente en otro idioma, aquí está la respuesta del servidor que te espera:

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="1">
    <api_session_key>123-abcdefghijkl</api_session_key>
</response> 

Vamos a construir un mejor control de errores a medida que seguimos el desarrollo, pero aquí está la respuesta de entrada actual de error:

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="0">
    <error>Sorry, your e-mail and password do not match.</error>
</response> 

Futuro inicios de sesión con la clave de sesión

Una vez que hayas ingresado, puedes llamar a métodos de la API dentro de esa secuencia de comandos inmediatamente.Debe guardar su clave de sesión (en una sesión de PHP , por ejemplo) de manera que cada página de las visitas usuario puede acceder a la cuenta del usuario sin necesidad de acceder de nuevo.Para acceder con tu clave de sesión existente, tal instancia su objeto PHP con la clave de sesión como el tercer argumento.

Código PHP:
$ds = new divshare_api($api_key$secret$session_key); 

No debe almacenar una clave de sesión de usuario por más tiempo que él o ella está comprometida con su aplicación.Vamos a añadir más información sobre la sesión de vencimiento clave a medida que continúe el desarrollo.

Obtener Información del usuario

Método: get_user_info

Esta es la petición más básica que puedes hacer a la API.No hay parámetros son necesarios (ya que usted lo ha hecho), y que responderá con una matriz que contiene el nombre de su usuario y dirección de correo electrónico.Podemos añadir más a esta respuesta a medida que continuamos el desarrollo.

Código PHP:
$user_info $ds->get_user_info(); 

Obtener una lista de los archivos del usuario

Método: get_user_files

Esto devolverá una matriz de los archivos asignados a la cuenta del usuario, con la más reciente de los archivos cargados en primer lugar.Puedes enviar dos parametros, limitar y offset, que funcionan igual que lo hacen en una consulta SQL.El límite establece el número máximo de registros para volver, y el desplazamiento establece el récord de partida (es decir, un medio de desplazamiento de 10 el registro 11 es el primero de la lista devuelta).Ambos son opcionales y deben estar enteros.

Código PHP:
$files $ds->get_user_files($limit$offset); 

Método: get_folder_files

Este método devuelve archivo de información en el mismo formato que get_user_files.El parámetro necesario folder_id, que se puede recuperar del archivo de información de cualquier archivo que se encuentra dentro de una carpeta. Sólo tienen acceso a las carpetas creadas por el usuario conectado.Pronto añadiremos un método para devolver un get_folder_list ara más fácilmente accesible la lista de carpetas en la cuenta de usuario . Este método también tiene el límite y en el offset de parámetros descritos anteriormente.


Código PHP:
$files $ds->get_folder_files($folder_id$limit$offset); 

Obtener archivos específicos

Método: get_files

Este método devuelve información sobre el mayor número de archivos específicos como desees.El parámetro requerido (en PHP) es una matriz de identificadores de uno o más archivos.Estas son en realidad se envía al servidor como una cadena separada por comas, así que asegúrate de usar ese formato si está trabajando en diferentes idiomas.Con este método, puedes acceder a archivos que no pertenecen al usuario registrado (si se conoce el ID de archivo), pero sólo si no está protegido con contraseña.

Código PHP:
$files $ds->get_files(array($file_id_1$file_id_2)); // works for unlimited files 


Descargar e incrustación de archivos

Una vez que tengas la información de tu expediente, es el momento de ponerlo en buen uso.Cada uno de los métodos de presentar declaraciones de un elemento file_id, que puede conectarse a las plantillas de abajo para crear enlaces de descarga y el código embed.

Descargar / Páginas de visión:

Download: http://www.divshare.com/download/[Archivo ID]
Direct Download: http://www.divshare.com/direct/[Archivo ID]
Full Image: http://www.divshare.com/image/[Archivo ID]
Slideshow: http://www.divshare.com/slideshow/[Archivo ID]

Imágenes(de tamaño medio y el pulgar no puede existir para algunos archivos):

Full Size: http://www.divshare.com/img/[Archivo ID]
Mid-Size (400px wide): http://www.divshare.com/img/midsize/[Archivo ID]
Thumbnail: http://www.divshare.com/img/thumb/[Archivo ID]

Reproductor de vídeo:

Código PHP:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,18,0" width="425" height="374" id="divflv">
    <
param name="movie" value="http://www.divshare.com/flash/video?myId=[Archivo ID]" />
    <
param name="allowFullScreen" value="true" />
    <
embed src="http://www.divshare.com/flash/video?myId=[Archivo ID]" width="425" height="374" name="divflv" allowfullscreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</
object

Audio Player (establecer el alto a 28 y ocultar la descripción del archivo):

Código PHP:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="335" height="47" id="divaudio2">
    <
param name="movie" value="http://www.divshare.com/flash/audio?myId=[Archivo ID]" />
    <
embed src="http://www.divshare.com/flash/audio?myId=[Archivo ID]" width="335" height="47" name="divaudio2" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed

Slideshow Player(utiliza la identificación del archivo de cualquier imagen en la carpeta):

Código PHP:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,18,0" width="560" height="400" id="divslide">
    <
param name="movie" value="http://www.divshare.com/flash/slide?myId=[Archivo ID]" />
    <
param name="allowFullScreen" value="true" />
    <
embed src="http://www.divshare.com/flash/slide?myId=[Archivo ID]" width="560" height="400" name="divslide" allowfullscreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</
object

Visor de documentos:

Código PHP:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="560" height="500" id="divdoc">
    <
param name="movie" value="http://www.divshare.com/flash/document/[FILE ID]" />
    <
embed src="http://www.divshare.com/flash/document/[FILE ID]" width="560" height="500" name="divdoc" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</
object

Subida

Subida a DivShare uso de la API
Es un proceso de dos pasos.En primer lugar, se llama a un método del API que devuelve un billete de carga única.Entonces se genera un formulario HTML, que envía los datos al servidor DivShare y utiliza el billete de subida para identificar el usuario conectado.

Creación de un billete de Subida

Un boleto de carga es un código único que se incluye en el formulario POST al servidor de DivShare's - que nos permite identificar el usuario conectado, sin exponer la información confidencial como la clave de sesión de la API o la contraseña del usuario.Cada boleto es para subir a una determinada clave de la API, y la combinación de clave de sesión de usuario.Sólo puede ser utilizado una vez, y expira después de 24 horas.

El cliente PHP devolverá un billete de carga cuando se ejecuta la siguiente función:

Código PHP:
$upload_ticket $ds->get_upload_ticket(); 

Es muy fácil.: Si estás construyendo otro cliente, aquí está la respuesta XML que puedes esperar:

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="1">
    <upload_ticket>123-abcdefghijkl</upload_ticket>
</response> 

Creando el Formulario de Subida

Ahora que tienes tu ticket,tendrás que agregarlo a tu formulario de subida.Echa un vistazo a este ejemplo, después iremos a través de él paso a paso.

Código PHP:
<form action="http://upload.divshare.com/api/upload" method="post" enctype="multipart/form-data">

    <
input type="hidden" name="upload_ticket" value="[UPLOAD TICKET]" />
    <
input type="hidden" name="response_url" value="[RESPONSE URL ON YOUR SITE]" />
   
    <
input type="file" name="file1" />
    <
input type="text" name="file1_description" maxlength="255" />
    <!-- 
Works for up to five filesnamed "file1" through "file5" -->

    <
select name="folder_id">
        <
option value="[FOLDER ID 1]">[Carpeta de Título 1]</option>
        <
option value="[FOLDER ID 2]">[Carpeta de Título 2]</option>
    </
select>

    <
input type="text" name="email_to" maxlength="255" />
    <!-- 
Separate multiple e-mails with commas -->

    <
input type="submit" value="Upload" />

</
form

El formulario de etiqueta

Como con cualquier forma que carga un archivo, debe incluir enctype = "multipart / form-data".También tenga en cuenta que la URL es para subir a http://upload.divshare.com/api/upload.

El Upload Ticket

Generar como se describe anteriormente, a continuación, inserte aquí.

La dirección URL de respuesta

Esta es la parte importante.Después de subir a nuestro servidor los procesos de tu carga, volverá a dirigir el usuario a este sitio en internet con una cadena de consulta GET de identificadores de archivo adjunto.Por ejemplo, la dirección de respuesta http://www.mysite.com/response_url.php producirían los siguientes redirigir:


Código:
http://www.mysite.com/response_url.php?file1=123456-abc&file2=123456-abc ...

Los archivos serán nombrados a través File5 archivo1.Si la respuesta de tu dirección ya tiene parámetros GET adjunto, el servidor de carga anexará a su cadena de consulta con una nueva y en lugar de una?.

También puedes utilizar tu dirección de respuesta para manejar los campos personalizados de su formulario de subida.Cualquier campo cuyo nombre no figura expresamente en el formulario de subida ejemplo anterior será enviado de nuevo a la dirección de respuesta como parte de la cadena de consulta GET.Puesto que existe una longitud máxima impuesta por el navegador la dirección resultante, es posible que encuentre algunos límites a esta función.



Archivos

Puedes subir hasta cinco archivos a la vez.Nombre de cada archivo archivo1 a través File5, y el nombre de cada campo de descripción a través file1_description file5_description.Un valor descripción de la "Descripción del archivo (opcional)" será ignorado por el servidor de carga.

Carpeta ID

El envío de una carpeta de identificación, que debe ser un número entero, agregará los archivos subidos a esa carpeta.La carpeta debe ser propiedad del usuario conectado.Serás capaz de llenar este campo con facilidad del usuario actual, carpeta todos los títulos y los identificadores de carpeta en el lanzamiento del método get_folder_list.

Enviar por E-mail

Los usuarios pueden escribir hasta 255 caracteres por valor de direcciones de correo electrónico en este campo, separados por comas. Los espacios alrededor de las comas también son aceptables. Each e-mail address will be verified by the sever to ensure it's in a plausible format. Cada dirección de correo electrónico será verificada severamente para asegurarse de que en un formato plausible.


Sumisión

Esto es sólo el botón de envío estándar. Siéntete libre para mejorar la retroalimentación con algo de JavaScript para mostrar una imagen de progreso, o cualquier otra cosa que desees.En este momento, el indicador de progreso de subida no es compatible con los archivos de la API, pero estamos trabajando sobre las opciones para incluir que en el futuro.

Procesando la respuesta Subir

Como se describió anteriormente, la respuesta de tu URL correspondiente recibirán un consulta GET con los identificadores de los archivos recién subido.A continuación, puedes ejecutar el método get_files para recuperar más información acerca de cada archivo, añade los identificadores a tu propia base de datos para un uso futuro, o utilizarlos de cualquier otra manera.De aquí en adelante, todo depende de ti.


Cierre de sesión

Al final del período de sesiones de tu usuario, puedes utilizar el método de cierre de sesión para eliminar la clave actual período de sesiones.Esto devolverá un logged_out elemento XML con el valor de 1 en caso de éxito.

Código PHP:
$logout_result $ds->logout(); 

API avanzada para el Desarrollo

Hasta ahora, hemos demostrado cómo utilizar la API con el cliente actual de PHP, pero en realidad no hemos mirado bajo el capó.Esta sección le ayudará a desarrollar su propio cliente de la API y saber exactamente qué esperar desde el servidor cuando responde.

Posteando al servidor

API POST URL: http://www.divshare.com/api/

La comunicación con el servidor pasa a través de un DivShare HTTP POST - en el caso del cliente PHP, utilizamos funciones CURL para lograr esto. Cuando estás montando tu propio POST, esto es lo que necesitas:

api_key - Su clave para el API.
method- ` El método que está llamando, como entrada o get_files.
api_session_key —Requerido para todos los métodos, excepto entrada, que devuelve una nueva clave de sesión.
api_sig —Una firma creada por generar un hash MD5 de su clave secreta, su clave de sesión y los parámetros de la enviada con su llamada a la API.Obligatorio para todos los métodos, excepto entrada.

Generación de la Firma de la API

Tendrá que generar una nueva firma para enviar con cada llamada (con excepción de entrada, que no requieren de una firma).Los ingredientes
son la clave secreta, su clave de sesión, y una lista alfabética de los otros parámetros que estás enviando cuyos nombres no están incluidos en
la lista siguiente: api_key, api_session_key, el método y api_sig.He aquí un ejemplo:

Su clave secreta es 123-secret.

Su clave de sesión es 456-sesión.

Está utilizando el método get_user_files, y ya está enviando los parámetros límite = 5 = 10 y el desplazamiento.

La cadena que se utiliza para crear su firma será: 123-secret456-sessionlimit5offset10.Ten en cuenta que los parámetros deben estar en orden alfabético, lo que se limitan siempre viene antes de offset. Cada parámetro debe ser emparejado con su valor como se muestra.Después de haber organizado con éxito sus datos y crear la cadena, es necesario crear un hash MD5 de la cadena.Esta es su firma API, que se contabiliza como debe api_sig.

En el servidor, vamos a construir nuestra propia firma con el mismo método - si coinciden, su llamada a la API continuará.

Formatos XML de Respuesta

Hasta ahora hemos demostrado una muestra de algunas respuestas XML, y hemos creado un cliente PHP que analiza automáticamente el XML en una matriz de PHP cuando se recibe los datos.Para construir tu propio cliente,necesitas más detalles sobre las posibles respuestas para cada método.Aquí hay una lista a continuación, que vamos a actualizar para reflejar los cambios o adiciones a medida que continuamos el desarrollo.

Login

Devuelve la clave nueva API período de sesiones o un error.No necesitas una clave de sesión o una firma para llamar a este método.

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="1">
    <api_session_key>123-abcdefghijkl</api_session_key>
</response> 

get_user_info

Devuelve el usuario de e-mail y nombre.

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="1">
    <user_info>
        <user_fname>Rob</user_fname>
        <user_email>[email protected]</user_email>
    </user_info>
</response> 

get_user_files, get_folder_files y get_files

Todos estos métodos devuelven archivo de datos en el mismo formato. Last_downloaded_at uploaded_at dígitos y son marcas de tiempo UNIX-10.título de la carpeta y el ID de carpeta sólo tendrán valores si el archivo está en una carpeta.El será un nodo del archivo adicional para cada archivo devuelto.

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="1">
    <files>
        <file>
            <file_id>123456-abc</file_id>
            <file_name>My Resume.doc</file_name>
            <file_description>Resume (Draft 3)</file_description>
            <file_size>0.4 MB</file_size>
            <downloads>4</downloads>
            <last_downloaded_at>1192417863</last_downloaded_at>
            <uploaded_at>1192454938</uploaded_at>
            <folder_title>Job Applications</folder_title>
            <folder_id>12345</folder_id>
        </file>
    </files>
</response> 

get_upload_ticket

Como se describió anteriormente, este devuelve un billete de carga a utilizar en el formulario de subida.

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="1">
    <upload_ticket>123-abcdefghijkl</upload_ticket>
</response> 

Cierre de sesión

Este método elimina la clave de sesión actual.Devuelve el siguiente en caso de éxito:

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="1">
    <logged_out>1</logged_out>
</response> 

Errores

Si los resultados de su llamada a la API en un error, el atributo de estado de la etiqueta de la respuesta será 0 (cero).La descripción de error serán devueltos en el siguiente formato, que puede tener un mayor error de más nodos.Sabemos que esto no es un error muy robusto sistema de manejo, y vamos a estar mejorando a medida que el desarrollo continúa.

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<response status="0">
    <error>Sorry, your e-mail and password do not match.</error>
</response> 

Si no lo tienes claro............

apreta el GoOo!!!
O.o

woow.... eso es mucho

se ve bueno

saludos...
Movido a Tutoriales!