Как получить доступ к гаджетам доступа. * С OpenSocial - PullRequest
1 голос
/ 12 октября 2010

Есть ли способ использовать gadgets.* в моем коде JavaScript, если мой тип контента URL?

Ответы [ 2 ]

1 голос
/ 01 ноября 2010

В соответствии со спецификацией OpenSocial (по крайней мере, начиная с 0.8 и выше), относительный путь к библиотекам JavaScript запрашиваемых функций должен передаваться в параметре содержимого URL. Найдите в спецификации OpenSocial ключевое слово "libs", чтобы получить больше информации.

Проблема по-прежнему заключается в том, что путь, указанный в URL-адресе, является относительным, а не абсолютным, и вам необходимо знать базовый URL-адрес, куда следует добавить этот параметр. В обсуждении здесь предлагается использовать базовый URL "https://www -gm-opensocial.googleusercontent.com / gadgets / js /" и добавить значение "libs" как есть, но я не успешно проверено это. Код, который мы использовали для получения библиотек для гаджета OpenSocial в iGoogle (с поддержкой jQuery):

var libsMatch = window.location.search.match(/[?&]libs=([^&]*)/);
if (libsMatch) {
    var libArray = libsMatch[1].split(",");
    $.each( libArray, function(i, val) {
        $.ajax( {
            url: "http://www.google.com/ig/f/" + val,
            dataType: 'script'
        } );
    } );
}

ОБРАТИТЕ ВНИМАНИЕ, однако, что не все API будут доступны таким образом, например, gadgets.io. * Не могут быть включены таким образом, другие должны быть протестированы.

1 голос
/ 27 октября 2010

Вы можете использовать функцию Proxied Content . Таким образом, вы можете получить доступ к гаджетам. * API из содержимого, полученного с вашего собственного сервера.

<Module>
  <ModulePrefs title="My App">
    <Require feature="opensocial-0.9"/>
  </ModulePrefs>
  <Content view="canvas" href="http://www.example.com/myapp/canvas/index.html">
  </Content>
</Module>
...