示例#1
0
            public static async Task <string> GetFacebookProfileName(string accessToken)
            {
                var uri = GetUri("https://graph.facebook.com/v2.9/me",
                                 ("fields", "id,name"),
                                 ("access_token", accessToken));

                var res = await FacebookRequest <FacebookProfile>(uri);

                return(res.Name);
            }
示例#2
0
            public static async Task <bool> ValidateAccessToken(string accessToken)
            {
                var uri = GetUri("https://graph.facebook.com/debug_token",
                                 ("input_token", accessToken),
                                 ("access_token", $"{FacebookAppId}|{FacebookAppSecret}"));

                var res = await FacebookRequest <object>(uri).ConfigureAwait(false);

                return((((dynamic)res)?.data)?.is_valid);
            }
示例#3
0
            private static string GetOAuthCallBack(ConversationReference conversationReference, string facebookOauthCallback)
            {
                var uri = GetUri(facebookOauthCallback,
                                 ("userId", TokenEncoder(conversationReference.User.Id)),
                                 ("botId", TokenEncoder(conversationReference.Bot.Id)),
                                 ("conversationId", TokenEncoder(conversationReference.Conversation.Id)),
                                 ("serviceUrl", TokenEncoder(conversationReference.ServiceUrl)),
                                 ("channelId", conversationReference.ChannelId)
                                 );

                return(uri.ToString());
            }
示例#4
0
            public async static Task <FacebookAcessToken> ExchangeCodeForAccessToken(ConversationReference conversationReference, string code, string facebookOauthCallback)
            {
                var redirectUri = GetOAuthCallBack(conversationReference, facebookOauthCallback);
                var uri         = GetUri("https://graph.facebook.com/v2.9/oauth/access_token",
                                         ("client_id", FacebookAppId),
                                         ("redirect_uri", redirectUri),
                                         ("client_secret", FacebookAppSecret),
                                         ("code", code)
                                         );

                return(await FacebookRequest <FacebookAcessToken>(uri));
            }
示例#5
0
            public static string GetFacebookLoginURL(ConversationReference conversationReference, string facebookOauthCallback)
            {
                var redirectUri = GetOAuthCallBack(conversationReference, facebookOauthCallback);
                var uri         = GetUri("https://www.facebook.com/v2.9/dialog/oauth",
                                         ("client_id", FacebookAppId),
                                         ("redirect_uri", redirectUri),
                                         ("response_type", "code"),
                                         ("scope", "public_profile,email"),
                                         ("state", Convert.ToString(new Random().Next(9999)))
                                         );

                return(uri.ToString());
            }