Java-скрипт и открытый график Facebook - PullRequest
0 голосов
/ 11 ноября 2011

Я запускаю приложение javascript, и часть его работает так:

document.write("<param name='nick' value='" + nick + "'>\n");

В <param ....> я не могу вызвать api url графика (это вызывает ошибку javascript), поэтому мне нужно вызвать его раньше, затем взять его как переменную и поместить в <param>. Сейчас я попробовал много способов сделать это без всякой удачи, поэтому мне нужна помощь для этого:

call "the_url/me?fields="firstname" <- this works every time, php, java, html,... 

и теперь, что, кажется, доставляет мне много проблем, установите ответ в переменной или что-то вроде этого:

nick = arg1[]
id = arg2[]
and take it in the document.write() 

document.write("<param name='nick' value='" + nick + "'>\n");
document.write("<param name='id' value='" + id + "'>\n");

Иногда он устанавливает все в первой переменной; в других случаях он ничего не возвращает или ошибается в неправильном месте или .... (я думаю, вы поняли).

Может быть, я что-то упускаю, упускаю простой способ или не использую право возврата, я новичок в opengraph и, возможно, у меня нет права .... Я не знаю больше поэтому мне нужна помощь или совет

Обновление:

я использовал fb.api вот так

    function ShowMyName() {
        FB.api("/me", function (response) {
            document.jform.nick.value = response.name ; 
                });
}

затем используйте форму, чтобы у людей была возможность сменить ник перед тем, как начать, Самое странное в этом то, что когда я вызываю functoin с предупреждением, он дает мне имя, но другая часть дает мне неопределенное возвращение, поэтому я обратился за помощью, я не понимаю, почему msgbox работает на том же скрипте и другая часть остается неделимой, тот же сценарий

так что это работает:

    <button name="my_full_name" onclick="testbut()" value="My Name" />
<script language="javascript" type="text/javascript">
function testbut() {
        FB.api("/me",
                function (response) {
                    alert('Name is ' + response.name);
                });

    }
</script>

и на том же скрипте это не сработает,

    function ShowMyName() {
        FB.api("/me", function (response) {
            document.jform.nick.value = response.name ; 
                });
}

Я уверен, что документ верен, потому что я могу поместить что-нибудь в часть значения, и это появится ....

1 Ответ

0 голосов
/ 12 ноября 2011

Я не хочу давать ответ, который начинается со ссылки на документацию, но похоже, что это ваше первое приложение. На этот точный вопрос ответила документация в качестве примера здесь: https://developers.facebook.com/docs/reference/javascript/

Этот вызов должен выполняться асинхронно, так как вы ожидаете удаленных данных. Затем вам нужно выполнить функцию обратного вызова при получении данных, иначе ваши переменные будут пустыми, а ваш код сломается. JavaScript API OpenGraph хорошо работает, чтобы сделать это для вас.

По сути, вам нужно сделать вызов асинхронно и выполнить вызовы document.write () как часть вашей функции обратного вызова. Итак, после того как вы аутентифицировались и все такое, сделайте что-то вроде этого:

FB.api('/me', function(response) {
  nick = response.name;
  document.write("<param name='nick' value='" + nick + "'>\n");
});
...