Как я могу получить идентификатор встраивания для Slideshare из полного URL-адреса?

Я хочу, чтобы пользователь мог добавлять презентацию Slideshare и видео Youtube на свой веб-сайт. Я не хочу, чтобы у них возникали проблемы с поиском встроенного кода, я хочу сгенерировать его самостоятельно, поэтому я определяю размер и протокол, а им просто нужно скопировать URL-адрес, который они видят в адресной строке.

Это было легко сделать с Youtube, мне просто нужно было извлечь идентификатор видео. С Slideshare это не так просто, поскольку полный URL-адрес не содержит идентификатора, который используется при встраивании презентации.

Итак, в основном, я хочу знать, как перейти от этого

http://www.slideshare.net/guest196e23/joel-spolsky-100-things-keynote

to

http://www.slideshare.net/slideshow/embed_code/4053571

Или, точнее, с "guest196e23/joel-spolsky-100-things-keynote" на "4053571"

Я хотел бы решение на стороне клиента (javascript).

Спасибо за вашу помощь!


person Melanie    schedule 14.09.2012    source источник
comment
Вам нужно будет загрузить данную страницу URL и проанализировать ее на стороне сервера (например: с помощью PHP). Найдите этот тег HTML: <meta name="twitter:player" class="twitter_player" value="https://www.slideshare.net/slideshow/embed_code/4053571" /> в содержимом тега <HEAD>. Преобразуйте протокол https: в http:.   -  person Jay    schedule 15.09.2012
comment
Спасибо Джей за этот указатель. Я не хотел усложнять, добавляя запрос ajax, поэтому сейчас я попросил своих пользователей немного больше усилий. Они должны скопировать код для встраивания, и я извлек оттуда идентификатор. Пока этого достаточно, но будет здорово, если SlideShare будет работать для этого так же, как Youtube!   -  person Melanie    schedule 18.09.2012


Ответы (1)


Вы можете легко добиться этого, используя Node.js и JSDOM.

jsdom.env(
  "http://www.slideshare.net/DonaldDerek/build-your-own-raspitv-with-nodejs-socketio",
  ["http://code.jquery.com/jquery.js"],
  function (errors, window) {
    var $ = window.$ , 
        presentation = $(".twitter_player").attr('value')

    if(presentation === undefined){
      res.json({error:true})  
    }
    else{
      res.json({presentation_embed:presentation, error:false})
    }
  }
)

Затем просто перехватите ответ внутри обратного вызова AJAX.

person Donald Derek    schedule 10.09.2013