2011-01-17 13 views
6

He encontrado preguntas similares pero ninguna de las respuestas muestra clara y fácilmente cómo obtener una miniatura para un video vimeo usando jQuery y JSON. Si alguien puede ayudar, sería genial, esto es lo que tengo pero no muestra nada en este momento.Obtener la miniatura de Vimeo para video usando jQuery

var vimeoVideoID = '17631561'; 
var videoCallback = 'showThumb'; 

$.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=' + videoCallback, 

function(data){ 
$(".thumbs").attr('src',data[0].thumbnail_large); 
}); 

Gracias de antemano.

+0

Estoy de acuerdo, jQuery es realmente el mejor, resuelve todo tipo de problemas del navegador y también es bueno. – goat

+0

No soy el único entonces :), vote la pregunta si puede, ya que podría ayudar a obtener una respuesta. –

Respuesta

29

Creo que tiene el problema "same origin policy". Debería considerar escribir un script del lado del servidor usando algo como "file_get_contents" o "fopen", lo que le permite tomar los datos de vimeo, traducirlos a json y enviarlos a su javascript con una agradable llamada ajax.

Si desea evitar el uso de un script del lado del servidor, puede utilizar el tipo de datos JSONP.

var vimeoVideoID = '17631561'; 

$.getJSON('https://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=?', {format: "json"}, function(data) { 
     $(".thumbs").attr('src', data[0].thumbnail_large); 
}); 

Observe que la URL es un poco diferente de cómo la está utilizando. La devolución de llamada que definió como var es innecesaria. Está conectando el getJSON a una función directamente, por lo que llamará a la 'devolución de llamada' en la url '?'. Esto informa a la función getJSON que pase la devolución exitosa de datos a la función suministrada.

Puede probar mi código here. ¡Espero eso ayude!

+0

No sabría cómo hacerlo y parece excesivo e innecesario. Debería ser solo una simple solicitud de JSON para la imagen, pero creo que es su agradecimiento por la información de todos modos. –

+1

Si no desea utilizar un script del lado del servidor, quizás considere usar JSONP sobre JSON. http://en.wikipedia.org/wiki/JSON#JSONP http://vimeo.com/api/docs/response-formats#jsonp Vaciará la necesidad de una secuencia de comandos del lado del servidor, y le permite hacer lo que le gustaría. Hay inconvenientes, y es por eso que me estoy vinculando a la página de wikipedia que los describe. ¡Espero que esto ayude! – Lance

+0

Ok, eso suena bien, ¿cómo modificaría el código en la pregunta para trabajar con JSONP? –

-1

Por favor, echa un vistazo a this page; Vimeo tiene un nuevo método llamado oEmbed ya que Vimeo ahora está impulsando su nueva tecnología oEmbed.

El método anterior fallará en IE (no se mostrarán los pulgares).

Cuestiones relacionadas