惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Latest news
Latest news
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
V
V2EX
博客园 - 司徒正美
B
Blog RSS Feed
AWS News Blog
AWS News Blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
Cisco Talos Blog
Cisco Talos Blog
Last Week in AI
Last Week in AI
NISL@THU
NISL@THU
博客园 - Franky
P
Proofpoint News Feed
博客园_首页
C
CERT Recently Published Vulnerability Notes
雷峰网
雷峰网
S
Schneier on Security
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
WordPress大学
WordPress大学
The Hacker News
The Hacker News
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
A
Arctic Wolf
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
罗磊的独立博客
T
The Blog of Author Tim Ferriss
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
SecWiki News
SecWiki News
云风的 BLOG
云风的 BLOG
美团技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Security Latest
Security Latest
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog
S
Security Affairs

博客园 - myx

安装gitlab管理自己的代码 升级Tornado到4后weibo oauth登录不了 SQL Server 无日志文件附加数据库 用monit监控系统关键进程 Failed to read auto-increment value from storage engine错误的处理方法 今天测试了一下 sqlalchemy 性能 PIL The _imaging C module is not installed phpExcel大数据量情况下内存溢出解决 tcpdf慢及常用的一些方法及问题 Python获取WebService CodeIgniter出现Disallowed Key Characters的问题 CodeIgniter链接ms sql 如果数据库名称有点号连接出错 用python写windows服务 CodeIgniter链接ms sql 的过程windows 2008 关于NTLM认证的.NET,php,python登录 php里的html内容切取 js生成新加坡的NRIC号码 Sina站内应用的登录 PowerDesigner 链接MySql 用ODBC链接不上的问题
DotNetOpenAuth的Facebook登录,获取头像与基本资料
myx · 2012-12-31 · via 博客园 - myx

Facebook的相对比较简单,下载下来的DEMO基本就可以用了,主要列一下需要注意的地方:

1.权限设置:
是在FacebookClient里面的AuthorizationEndpoint。具体设置示例如下:

AuthorizationEndpoint = new Uri("https://graph.facebook.com/oauth/authorize?scope=email,user_birthday,read_stream,publish_stream")

2.获取当前登录用户的EMAIL,就是需要权限设置加上email,然后如下就可以获取用户的基本资料了:

3. 获取用户头像。facebook的只要知道用户的ID或name就可以获取了。一般是获取最大的然后resize成需要的。地址如下:

http://graph.facebook.com/randy.ran.12327/picture?type=large
//or
http://graph.facebook.com/100000396765290/picture?type=large

4. 获取好友列表及查看好友是否已经使用了此的APP,请求地址:

https://graph.facebook.com/me/friends?fields=id,name,installed&limit=5000&offset=0

 这里注意的是 installed 参数,默认情况下是没有这个返回的。如果好友已经使用了此的APP,则这installed=true ,就是根据这个来判断有哪些好友已经用了相同的APP的。然后就可以直接关注了。

5. 使用fbUI的发送消息邀请好友

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
    FB.init({
        appId: 'app id',
        cookie: true,
        status: true,
        xfbml: true
    });


    function FacebookInviteFriends2() {
        var link_url = "http://www.facebook.com/";
        FB.ui({
            method: 'send',
            to: '100001412299717',
            name: "Join me on my ibt!",
            description: "Randy is on Pinterest, a place to discover, collect, and share inspiration. Join Pinterest to see Randy's pins and start pinning.",
            picture: "http://media-cache-ec5.pinterest.com/avatars/randyran8_1356501711_444.jpg",
            link: link_url
        }, function (response) {
            alert(response);
        });
    }

</script>

  相关的可参考:https://developers.facebook.com/docs/reference/dialogs/requests/ ,还有这里的邀请好友:http://www.9lessons.info/2012/07/facebook-invite-friends-api.html

6. 已API方式分享:

        /// <summary>
        /// 分享到facebook
        /// </summary>
        /// <param name="token"></param>
        /// <param name="name">标题</param>
        /// <param name="link">点击了的连接地址</param>
        /// <param name="caption">caption(一行)</param>
        /// <param name="description">description</param>
        /// <param name="source">显示的图片地址150x150大小,需要以http开头的哦</param>
        /// <param name="message">评论内容</param>
        /// <returns></returns>
        public static BoolMessage Share(string token, string name, string link, string caption, string description, string source, string message)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("name", name);
            dic.Add("link", link);
            dic.Add("caption", caption);
            dic.Add("description", description);
            dic.Add("source", source);
            dic.Add("privacy", "{\"value\": \"EVERYONE\"}");
            dic.Add("message", message);
            dic.Add("access_token",token);
            string url = "https://graph.facebook.com/me/feed";
            return HttpHelper.WebRequest(HttpHelper.Method.POST, url,dic);
        }