导入Hotmail联系人时出现问题 [英] Problem in importing Hotmail contacts

查看:57
本文介绍了导入Hotmail联系人时出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我是在网络应用程序上开发的,我从HotMail导入联系人(实时邮件)。

但它没有给出我的结果很好。

请查看此代码并帮助我。



提前付款。



Hi,

I developed on web application in which I import contacts from HotMail(live mail).
But it doesnt gives me proper result.
Please look into this code and help me out.

Thanx in Advance.

Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {     
    }
    private void GetMsnContacts(string code)
    {
        MsnImport msnImport = new MsnImport();
        List<string> emaillist = new List<string>();
        emaillist = msnImport.GetMsnContacts(code);
        //esponse.Write(emaillist[0][1].ToString());
        string name = "";
        Response.Write(emaillist.Count.ToString());
        //foreach (var cont in emaillist.ToArray())
        //{
        //    name += cont[0].ToString();
        //    Response.Write(name);
        //}
        }

    protected void showList_Click(object sender, EventArgs e)
    {
        if (Request.QueryString["code"] != null)
        {
            MsnImport OBJ = new MsnImport();

            GetMsnContacts(Request.QueryString["code"].ToString());

        }
    }
}

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
    <form id="one" runat="server">
        <a href="https://oauth.live.com/authorize?client_id=00000000480E760D&scope=wl.basic&client_secret=VRZj0vQ5mz1pPys7Lq3sVatnzWGPCNeo&response_type=code&redirect_uri=http://select.bridgestone.co.in/Default2.aspx"> Click To Get Msn Contacts </a>
    <asp:Button ID = "showList" runat="server" Text = "Submit"   onclick="showList_Click" />
    </form>
    </div>
</body>
</html>

MsnImport.cs

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Configuration;
using System.IO;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Web.Script.Serialization;
using System.Runtime.Serialization;
using System.ServiceModel;


/// <summary>
/// Summary description for MsnImport
/// </summary>
public class MsnImport
{
    private const string wlCookie = "wl_auth";
    private const string clientId = "00000000480E760D";
    private string Callback = "http://select.bridgestone.co.in/Default2.aspx";
    private const string clientSecret = "VRZj0vQ5mz1pPys7Lq3sVatnzWGPCNeo";
    private const string oauthUrl = "https://oauth.live.com/token"";
    private List<string> emaillist = new List<string>();

public List<string> GetMsnContacts(string code)
{
    try
    {
        HttpContext context = HttpContext.Current;
    string verifier = code;
    OAuthToken token;
    OAuthError error;

    if (!string.IsNullOrEmpty(verifier))
    {
        RequestAccessTokenByVerifier(verifier, out token, out error);
    }
    }
    catch (Exception ex) { }
    return emaillist;
}

private void RequestAccessTokenByVerifier(string verifier, out OAuthToken token, out OAuthError error)
{
    string content = String.Format("client_id={0}&redirect_uri={1}&client_secret={2}&code={3}&grant_type=authorization_code",
    HttpUtility.UrlEncode(clientId),
    HttpUtility.UrlEncode(Callback),
    HttpUtility.UrlEncode(clientSecret),
    HttpUtility.UrlEncode(verifier));
    RequestAccessToken(content, out token, out error);
}
private void RequestAccessToken(string postContent, out OAuthToken token, out OAuthError error)
{
    token = null;
    error = null;
    HttpWebRequest request =WebRequest.Create(oauthUrl) as HttpWebRequest;
    request.Method = "POST";
    try
    {
        using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
        {
            writer.Write(postContent);
        }
        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        if (response != null)
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(OAuthToken));
            token = serializer.ReadObject(response.GetResponseStream()) as OAuthToken;
            if (token != null)
            {
                RequestContacts(token.AccessToken);
            }
        }
    }
    catch (Exception ex)
    {}
}

private void RequestContacts(string AccessToken)
{
    string content = String.Format("access_token={0}", HttpUtility.UrlEncode(AccessToken));
    string url = "https://apis.live.net/v5.0/me/contacts?"" + content;
    //string url = "https://apis.live.net/v5.0/me/contacts?access_token=" + AccessToken;
    HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
    //request.Method = "POST";
    request.Method = WebRequestMethods.Http.Get;
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    StreamReader reader = new StreamReader(response.GetResponseStream());
    string tmp = reader.ReadToEnd();
    JavaScriptSerializer ser = new JavaScriptSerializer();
    Dictionary<string, object> dictionary = ser.Deserialize<Dictionary<string, object>>(tmp);
    DisplayDictionary(dictionary);
}

    public bool DisplayDictionary(Dictionary<string, object> dict)
    {
    bool bSuccess = false;
    string abc = string.Empty;
    foreach (string strKey in dict.Keys)
    {
        string strOutput = "";// "".PadLeft(indentLevel * 8) + strKey + ":";
        object o = dict[strKey];
        if (o is Dictionary<string, object>)
        {
            DisplayDictionary((Dictionary<string, object>)o);
        }
        else if (o is ArrayList)
        {
            foreach (object oChild in ((ArrayList)o))
            {
                if (oChild is string)
                {
                    strOutput = ((string)oChild);
                }
                else if (oChild is Dictionary<string, object>)
                {
                    DisplayDictionary((Dictionary<string, object>)oChild);
                }
            }
        }
        else
        {
            if (o != null)
            {
                strOutput = o.ToString();
                if (strKey == "name")
                {
                    if (strOutput.Contains("@"))
                    emaillist.Add(strOutput);
                }
            }
        }
    }
    return bSuccess;
    }
}
[DataContract]
public class OAuthToken
{
[DataMember(Name = OAuthConstants.AccessToken)]
public string AccessToken { get; set; }
[DataMember(Name = OAuthConstants.RefreshToken)]
public string RefreshToken { get; set; }
[DataMember(Name = OAuthConstants.ExpiresIn)]
public string ExpiresIn { get; set; }
[DataMember(Name = OAuthConstants.Scope)]
public string Scope { get; set; }
}
public static class OAuthConstants
{
public const string ClientID = "client_id";
public const string ClientSecret = "client_secret";
public const string Callback = "redirect_uri";
public const string ClientState = "state";
public const string Scope = "scope";
public const string Code = "code";
public const string AccessToken = "access_token";
public const string ExpiresIn = "expires_in";
public const string RefreshToken = "refresh_token";
public const string ResponseType = "response_type";
public const string GrantType = "grant_type";
public const string Error = "error";
public const string ErrorDescription = "error_description";
public const string Display = "display";
}
[DataContract]
public class OAuthError
{
public OAuthError(string code, string desc)
{
this.Code = code;
this.Description = desc;
}
[DataMember(Name = OAuthConstants.Error)]
public string Code { get; private set; }
[DataMember(Name = OAuthConstants.ErrorDescription)]
public string Description { get; private set; }
}





电子邮件列表是我们打印联系人的列表,但它没有显示。

所以我算不了。但仍然显示为零。



emaillist is the list where we print contacts but it doesnt show.
So i count it no. of contacts but still is shows zero.

推荐答案

我面临同样的问题。没有找到结果,并且debuug重定向到错误url..please提供了解决方案......
i am facing the same prob. no result found and on debuug redirected to error url..please provide a sol...


这篇关于导入Hotmail联系人时出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆