none
Integrar calendário de aniversários do Facebook na aplicação RRS feed

  • Pergunta

  • Hello!

    É uma curiosidade que eu tenho.

    No meu Windows Phone, o calendário exibe todos os aniversários que estão no Facebook.

    Como fazer isto em uma aplicação mvc?

    Cleber

    sexta-feira, 20 de dezembro de 2013 11:36

Respostas

    • Marcado como Resposta Cleber Hans segunda-feira, 23 de dezembro de 2013 00:35
    domingo, 22 de dezembro de 2013 00:54
  • Primeiramente você deve criar um aplicativo no seu Facebook para que ele te possa disponibilizar duas variaveis:

    No endereço: https://developers.facebook.com/ se faz o login do seu usuário, depois no 

    https://developers.facebook.com/apps você clica no botão Criar Novo Aplicativo:

    Coloque somente o nome por enquanto e depois nessa tela se vai configurar o seu site para rodar essa aplicação e pegar dois valores

    No App ID na frente tem um número pegue e coloque no código abaixo 

    private const string App_Id = 

    Pegue também o App Secrete e coloque no constante do código logo abaixo:

    private const string App_Secret

    Além disso configure a URL DO SEU PROJETO para que funcione com essa aplicação no item Web Site with Facebook Login que no meu caso ta http://localhost:4337/ (quando for rodar definitivo tem que mudar aqui para a url do seu site)

    Código ASPX (vou mostrar os dados em um GridView com esse formato)

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView runat="server" ID="GridFB" AutoGenerateColumns="False">
                <Columns>
                    <asp:ImageField DataImageUrlField="Picture" HeaderText="Picture">
                    </asp:ImageField>
                    <asp:BoundField DataField="Id" HeaderText="Id" />
                    <asp:BoundField DataField="Name" HeaderText="Name" />                
                    <asp:BoundField DataField="Birthday" HeaderText="Birthday" />
                    <asp:BoundField DataField="Sexo" HeaderText="Sexo" />
                </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
    E codigo cs logo abaixo:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Newtonsoft.Json;
    using Facebook;
    
    namespace WebApplication1
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
                StatusAutorizacao();
                Facebook.FacebookClient client = new Facebook.FacebookClient(access_token);            
                client.AppId = App_Id;
                client.AppSecret = App_Secret;
                dynamic friends = client.Get("me/friends/?fields=name,birthday,picture, gender");
                var listafriends = (from c in ((IEnumerable<dynamic>)friends.data)
                                    select new
                                    {                                        
                                        Id = c.id,
                                        Name = c.name,                                    
                                        Birthday = c.birthday,
                                        Picture = c.picture.data.url,
                                        Sexo = c.gender
                                    }).ToArray();
                GridFB.DataSource = listafriends;
                GridFB.DataBind();                         
            }
            private string access_token { get; set; }
            private const string App_Id = ""; // coloque aqui o seu App ID
            private const string App_Secret = ""; // coloque aqui o seu App Secret
            private void StatusAutorizacao()
            {               
                String Redirect_Uri = Request.Url.AbsoluteUri;
                String Scope = "ads_management, create_event, publish_stream, manage_pages, read_friendlists, user_checkins, manage_friendlists, manage_notifications,publish_actions,rsvp_event,user_online_presence,friends_birthday";
    
                if (Request.QueryString["code"] == null)
                {
                    Response.Redirect(
                        string.Format("https://graph.facebook.com/oauth/authorize?redirect_uri={0}&display=popup&client_id={1}&scope={2}", Redirect_Uri, App_Id, Scope));
                }
                else
                {
                    Dictionary<string, string> Tokens;
                    String Url = string.Format("https://graph.facebook.com/oauth/access_token?redirect_uri={0}&display=popup&client_id={1}&scope={2}&code={3}&client_secret={4}", Redirect_Uri, App_Id, Scope, Request["code"], App_Secret);
    
                    WebClient web = new WebClient();                
                    String Texto = web.DownloadString(Url);
                    access_token = Texto.Replace("access_token=", "");
                }
            }
        }
    }



    Fulvio Cezar Canducci Dias

    sábado, 21 de dezembro de 2013 16:36

Todas as Respostas

  • Primeiramente você deve criar um aplicativo no seu Facebook para que ele te possa disponibilizar duas variaveis:

    No endereço: https://developers.facebook.com/ se faz o login do seu usuário, depois no 

    https://developers.facebook.com/apps você clica no botão Criar Novo Aplicativo:

    Coloque somente o nome por enquanto e depois nessa tela se vai configurar o seu site para rodar essa aplicação e pegar dois valores

    No App ID na frente tem um número pegue e coloque no código abaixo 

    private const string App_Id = 

    Pegue também o App Secrete e coloque no constante do código logo abaixo:

    private const string App_Secret

    Além disso configure a URL DO SEU PROJETO para que funcione com essa aplicação no item Web Site with Facebook Login que no meu caso ta http://localhost:4337/ (quando for rodar definitivo tem que mudar aqui para a url do seu site)

    Código ASPX (vou mostrar os dados em um GridView com esse formato)

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView runat="server" ID="GridFB" AutoGenerateColumns="False">
                <Columns>
                    <asp:ImageField DataImageUrlField="Picture" HeaderText="Picture">
                    </asp:ImageField>
                    <asp:BoundField DataField="Id" HeaderText="Id" />
                    <asp:BoundField DataField="Name" HeaderText="Name" />                
                    <asp:BoundField DataField="Birthday" HeaderText="Birthday" />
                    <asp:BoundField DataField="Sexo" HeaderText="Sexo" />
                </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
    E codigo cs logo abaixo:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Newtonsoft.Json;
    using Facebook;
    
    namespace WebApplication1
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
                StatusAutorizacao();
                Facebook.FacebookClient client = new Facebook.FacebookClient(access_token);            
                client.AppId = App_Id;
                client.AppSecret = App_Secret;
                dynamic friends = client.Get("me/friends/?fields=name,birthday,picture, gender");
                var listafriends = (from c in ((IEnumerable<dynamic>)friends.data)
                                    select new
                                    {                                        
                                        Id = c.id,
                                        Name = c.name,                                    
                                        Birthday = c.birthday,
                                        Picture = c.picture.data.url,
                                        Sexo = c.gender
                                    }).ToArray();
                GridFB.DataSource = listafriends;
                GridFB.DataBind();                         
            }
            private string access_token { get; set; }
            private const string App_Id = ""; // coloque aqui o seu App ID
            private const string App_Secret = ""; // coloque aqui o seu App Secret
            private void StatusAutorizacao()
            {               
                String Redirect_Uri = Request.Url.AbsoluteUri;
                String Scope = "ads_management, create_event, publish_stream, manage_pages, read_friendlists, user_checkins, manage_friendlists, manage_notifications,publish_actions,rsvp_event,user_online_presence,friends_birthday";
    
                if (Request.QueryString["code"] == null)
                {
                    Response.Redirect(
                        string.Format("https://graph.facebook.com/oauth/authorize?redirect_uri={0}&display=popup&client_id={1}&scope={2}", Redirect_Uri, App_Id, Scope));
                }
                else
                {
                    Dictionary<string, string> Tokens;
                    String Url = string.Format("https://graph.facebook.com/oauth/access_token?redirect_uri={0}&display=popup&client_id={1}&scope={2}&code={3}&client_secret={4}", Redirect_Uri, App_Id, Scope, Request["code"], App_Secret);
    
                    WebClient web = new WebClient();                
                    String Texto = web.DownloadString(Url);
                    access_token = Texto.Replace("access_token=", "");
                }
            }
        }
    }



    Fulvio Cezar Canducci Dias

    sábado, 21 de dezembro de 2013 16:36
    • Marcado como Resposta Cleber Hans segunda-feira, 23 de dezembro de 2013 00:35
    domingo, 22 de dezembro de 2013 00:54
  • Canducci, sem palavras.
    segunda-feira, 23 de dezembro de 2013 00:35