плагин регистрации на Facebook Async Validation - PullRequest
0 голосов
/ 09 июня 2011

Я пытаюсь повлиять на регистрацию в Facebook за последние три недели, чтобы проверить доступность имени пользователя. Я использую jquery и JSON в соответствии с этим руководством http://developers.facebook.com/docs/plugins/registration/advanced/ со следующим кодом, на который я могу отправить имя пользователя мой сервер, который является страницей aac #, чтобы проверить, доступна она или нет, но как ответить? Проблема в том, что я не знаю, как отправить сообщение со страницы c # на вызывающий сценарий, и как его использовать, прочитайте его здесь.

<body>

<div id="fb-root"></div>

<script src="http://connect.facebook.net/en_US/all.js#appId=134552926621797&xfbml=1"></script>

<fb:registration redirect-uri="http://dev2.urecommendme.com/test3.aspx" 
  fields='[{"name":"name"},
           {"name":"username","description":"Username","type":"text"}]' 
  onvalidate="validate_async"></fb:registration> 

<script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script>
    function validate_async(form, cb) {
        $.getJSON('http://dev2.urecommendme.com/test01.aspx?username=' + form.username + '&callback=?',
    function (response) {
        if (response.error) {
            // Username isn't taken, let the form submit
           cb();
        }
        alert(cb.toString());

    });
    }
</script> 
</body>

Возвращаемое сообщение должно быть примерно таким

<script src="http://graph.facebook.com/shahidgfdgd?callback=jsonp1307613510850">
jsonp1307613510850({
"error": {
"type": "OAuthException",
"message": "(#803) Some of the aliases you requested do not exist: shahid"
}
});
</script>

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

1 Ответ

0 голосов
/ 13 июня 2011

Страница регистрации FB должна выглядеть следующим образом

<body>

<div id="fb-root"></div>

<script src="http://connect.facebook.net/en_US/all.js#appId=134552926621785&xfbml=1"></script>

<fb:registration redirect-uri="http://dev2.urecommendme.com/test3.aspx" 
  fields='[{"name":"name"},
           {"name":"username","description":"Username","type":"text"}]' 
  onvalidate="validate_async"></fb:registration> 

<script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script>
    function validate_async(form, cb) {
        $.getJSON('test02.aspx?username=' + form.username,
    function (response) {
        if (response.error) {
            // Username isn't taken, let the form submit
            cb();
        }
        cb({ username: 'That username is taken' });
    });
    }
</script> 

</body>

Обратите внимание, как я упомянул имя файла сервера (оно не содержит полного URL-адреса, так как оба файла были в одном корневом каталоге) в функции validate_async (form, cb)


        $.getJSON('test02.aspx?username=' + form.username,

Страница Test02.aspx должна выглядеть следующим образом



Обратите внимание на отсутствие тегов html, body или head в test02.aspx (Test02.aspx.cs) должен выглядеть как


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;
using System.Text;

public partial class test02 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e1)
    {
        StringBuilder JSON = new StringBuilder();

        //validate from your database and execute one of the following two lines.

       JSON.Append("{\"error\":\"Exist\"}"); // username is taken

     //  JSON.Append("{\"anything\":\"Not Exist\"}");


        Response.Write(JSON.ToString());

        Response.End(); 

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...