2013-04-13 9 views
5

मैं ट्विटर के साथ मेरे बालों को फाड़ करने के लिए शुरू कर और एक उपयोगकर्ता प्रवेश द्वारा की कोशिश कर रहा !!! मेरे पास फेसबुक है, Google, ओपनआईडी सभी ठीक काम कर रहे हैं, सिर्फ ट्विटर एक दर्द है।DotNetOpenAuth ट्विटर Authenticaion रिटर्निंग 401 अनधिकृत

मैं लगातार 401 अनधिकृत हो रही है जब मैं अपने कोड को चलाने के लिए और क्यों समझ नहीं की कोशिश मुझे के जीवन के लिए

मैं एक चहचहाना ग्राहक बनाया है और और मैं इसे का उपयोग कर रहा DotNetOpenAuth नमूना समाधान से InMemoryTokenManager साथ। मेरे ट्विटर ग्राहक यहाँ है

public class TwitterClient 
{ 
    private string UserName { get; set; } 

    private static readonly ServiceProviderDescription ServiceDescription = 
     new ServiceProviderDescription 
     { 
      RequestTokenEndpoint = new MessageReceivingEndpoint(
             "https://api.twitter.com/oauth/request_token", 
             HttpDeliveryMethods.GetRequest | 
             HttpDeliveryMethods.AuthorizationHeaderRequest), 

      UserAuthorizationEndpoint = new MessageReceivingEndpoint(
             "https://api.twitter.com/oauth/authorize", 
             HttpDeliveryMethods.GetRequest | 
             HttpDeliveryMethods.AuthorizationHeaderRequest), 

      AccessTokenEndpoint = new MessageReceivingEndpoint(
             "https://api.twitter.com/oauth/access_token", 
             HttpDeliveryMethods.GetRequest | 
             HttpDeliveryMethods.AuthorizationHeaderRequest), 

      TamperProtectionElements = new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() }, 
     }; 

    IConsumerTokenManager _tokenManager; 

    public TwitterClient(IConsumerTokenManager tokenManager) 
    { 
     _tokenManager = tokenManager; 
    } 

    public void StartAuthentication() 
    { 
     var request = HttpContext.Current.Request; 
     using (var twitter = new WebConsumer(ServiceDescription, _tokenManager)) 
     { 
      var callBackUrl = new Uri(request.Url.Scheme + "://" + request.Url.Authority + "/Members/TwitterCallback"); 
      twitter.Channel.Send(
       twitter.PrepareRequestUserAuthorization(callBackUrl, null, null) 
      ); 
     } 
    } 

    public bool FinishAuthentication() 
    { 
     using (var twitter = new WebConsumer(ServiceDescription, _tokenManager)) 
     { 
      var accessTokenResponse = twitter.ProcessUserAuthorization(); 
      if (accessTokenResponse != null) 
      { 
       UserName = accessTokenResponse.ExtraData["screen_name"]; 
       return true; 
      } 
     } 

     return false; 
    } 
} 

और मैं अपने MembersController के निर्माता जो सही पहचान के साथ InMemoryTokenManager instantiating में निम्नलिखित है

_tokenManager = new InMemoryTokenManager(ConfigUtils.GetAppSetting("TwitterAppId"), ConfigUtils.GetAppSetting("TwitterAppSecret")); 

और मेरे दो क्रियाएं हैं

public ActionResult LogonTwitter() 
    { 
     var client = new TwitterClient(_tokenManager); 
     client.StartAuthentication(); 
     return null; 
    } 

    public ActionResult TwitterCallback() 
    { 
     var client = new TwitterClient(_tokenManager); 

     if (client.FinishAuthentication()) 
     { 
      return new RedirectResult("/"); 
     } 

     // show error 
     return View("LogOn"); 
    } 

त्रुटि StartAuthentication() मेरी TwitterClient में प्रकट होता है। जैसे ही यह इस लाइन

twitter.Channel.Send(
       twitter.PrepareRequestUserAuthorization(callBackUrl, null, null) 
      ); 

मैं निम्न त्रुटि

Error occurred while sending a direct message or getting the response. 
Inner Exception: The remote server returned an error: (401) Unauthorized. 

किसी को भी किसी भी सलाह मिल पाने के कॉल? मैंने कल और आज सुबह इसे हल करने की कोशिश की है। मैंने कोशिश की सभी ऑनलाइन उदाहरणों को भी 401 अनधिकृत वापस मिलते हैं? क्या DotNetOpenAuth और ट्विटर के साथ कोई ज्ञात समस्या है?

किसी भी मदद की बहुत सराहना की।

उत्तर

5

मैं सटीक शब्दावली याद नहीं कर सकते, लेकिन आप (कोड के साथ-साथ) चहचहाना अनुप्रयोग में एक कॉलबैक URL की स्थापना की है? मैं इसी तरह की समस्याओं हाल ही में आप का हिस्सा हैं तुम्हारे पास क्या है किसी भी अवसर मिला है, यहाँ तक कि जब स्थानीय स्तर पर विकसित करने मैं, लगता है कि आप कि मूल्य निर्धारित करने की आवश्यकता भी इसकी सिर्फ एक प्लेसहोल्डर अगर

+0

मैं एक फेसबुक कोड sameple तलाश कर रहा हूँ? मुझे त्रुटि 400 खराब अनुरोध मिल रहा है – user1186651

+0

धन्यवादkkkkkksssssssssssss !!!!! – benjguin

+0

बहुत बहुत धन्यवाद! :) –

संबंधित मुद्दे