Facebook UI Message Friend Dialog - PullRequest
0 голосов
/ 01 марта 2011

Привет, ребята, просто интересно, если вы могли бы помочь, у меня есть страница на C #, которая должна при нажатии кнопки показывать диалог друзей, чтобы отправить им информацию, чтобы начать использовать приложение.

Однако яУ меня проблема с FB.UI, пытающимся получить модальное отображение iframe из списка друзей.

В основном он пытается открыть модальный iframe, он показывает синюю рамку facebook, но без данных, затем через 5 секунд закрывается.

может помочь одна

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true" CodeFile="CompetitionPanel.aspx.cs" Inherits="CompetitionPanel" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
        FB.init({
            appId: '123',
            status: true, // check login status
            cookie: true, // enable cookies to allow the server to access the session
            xfbml: true,  // parse XFBML
            session: '<%=CurrentSession.AccessToken %>'
        });
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="body" Runat="Server">
<script>

    function test() {
        FB.ui({method: 'apprequests', 
        message: 'You should learn more about this awesome game.', 
        data: 'tracking information for the user',
        display: 'iframe'
    },
   function (response) {
       if (response && response.post_id) {
           alert('Post was published.');
       } else {
           alert('Post was not published.');
       }
   }

     );

        return false; 
    }

</script>
<div id="fb-root"></div>
<div class="container">
    <div class="left">
        <h2>WANT TO WIN FREE KIT?</h2>
        <p>
            Suggest  your friends. At the end of the week, you'll be entered into a prize draw to win free kit. The competition resets every week.
            Simple.
        </p>
        <asp:Button runat="server" ID="btntest" OnClientClick="Javascript:test();"/>
    </div>
    <div class="right"></div>
</div>
</asp:Content>

Заранее спасибо.

1 Ответ

2 голосов
/ 10 марта 2011

Когда я тестировал этот код, похоже, что ваша кнопка выполняет обратную передачу. поэтому я изменил

<asp:Button runat="server" ID="btntest" OnClientClick="Javascript:test();"/>

до

<asp:Button runat="server" ID="btntest" OnClientClick="return test();"/>

Это остановило обратную передачу, но диалог никогда не заполнялся, как вы упоминали в своем посте.

Я не уверен, почему, но, похоже, Facebook не нравится возвращаемое значение false в вашей тестовой функции, поэтому я попробовал это

<asp:Button runat="server" ID="btntest" OnClientClick="Javascript:test();return false;"/>

и в тестовой функции я закомментировал возвращение false.

//return false; 

Это сработало, но заселение было очень медленным. После некоторого тестирования кажется, что медлительность была разделена на раздел «Сценарий», в котором был тест функции, находящийся внутри формы asp, и на этой странице у меня был менеджер сценариев, поэтому я переместил этот раздел сценария за пределы формы, и он заполнился немного быстрее.

Надеюсь, это поможет

Приветствия

...