Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
jan.pichl
Člen
Avatar
jan.pichl:6.10.2015 18:28

Ahoj,
potřeboval bych radu. Snažím se vytvořit aplikaci která by odesílala fotku na zeď Facebookku. Problém je že se mě nedaří získat Access Token.

Na developers.fa­cebook.com jsem si založil aplikaci její ID předávám v ApplicationId. Nejspíš mám něco špatně nastaveno nebo se generuje špatně adresa. Dostávám totiž následující hlášení.

Tato adresa URL není povolena konfigurací aplikace: Jedna nebo více těchto adres > > >URL není v nastavení aplikace povolena. Musí se shodovat nastavením adresy URL >webu nebo URL základní stránky, nebo musí být doména subdoménou jedné z domén aplikace.

Nerozumím tomu co se ode mne chce nastavit a kde.

Funkce generující Log in:

private string GenerateLoginUrl()
      {
          var client = new FacebookClient();

          var fbLoginUri = client.GetLoginUrl(new
          {
              client_id = ApplicationId,
              redirect_uri ="https://m.facebook.com/dialog/oauth",
              response_type = "code",
              /* display = "popup",*/
              scope = "email,user_about_me,read_stream,publish_stream,user_photos, publish_checkins"
              /*,publish_stream"*/
          });

          return fbLoginUri.ToString();
      }

Přechod na stránku s vygenerovanou adresou:

loginWebBrowser.Navigate(loginUrl);

Funkce po přechodu na stránku TryParseOAuthCa­llbackUrl vrátí false:

private void webBrowser1_Navigated(object sender, NavigationEventArgs e)
{
    if (loginWebBrowser.Visibility == System.Windows.Visibility.Visible)
    {
        listBox1.Items.Add("navigated");

        var fb = new FacebookClient();

        FacebookOAuthResult oauthResult;


        if (fb.TryParseOAuthCallbackUrl(e.Uri, out oauthResult))
        {
            listBox1.Items.Add("uri");
            if (oauthResult.IsSuccess)
            {
                listBox1.Items.Add("ok");
                _accessToken = oauthResult.AccessToken;
                _authorized = true;
            }
            else
            {
                listBox1.Items.Add("false");
                _accessToken = "";
                _authorized = false;
            }

            if (_authorized)
            {
                listBox1.Items.Add("_authorized");
                fb = new FacebookClient(_accessToken);

                dynamic result = fb.Get("me");
                _currentName = result.name;
                _currentEmail = result.email;
                userNameLabel.Content = string.Format("Facebook User: {0}", _currentName);

                //Do what need being done now that we are logged in!
            }
            else
            {
                MessageBox.Show("Couldn't log into Facebook!", "Login unsuccessful", MessageBoxButton.OK, MessageBoxImage.Error);

            }
        }
    }
}

Předem děkuji za případnou radu.

 
Odpovědět 6.10.2015 18:28
Avatar
Odpovídá na jan.pichl
Vojtěch Pospíchal:6.10.2015 19:27

Tohle vypadá na problém přímo v nastavení aplikace na fb. Někde tam totiž bude nastavení toho, z jaké domény (respektive ip adresy) se tam dá přistupovat. Vzhledem k tomu, že přistupuješ z desktopu, budeš muset najít způsob, jak povolit všechny ip adresy, nebo si udělat API na serveru.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 6.10.2015 19:27
Avatar
jan.pichl
Člen
Avatar
Odpovídá na Vojtěch Pospíchal
jan.pichl:8.10.2015 18:54

Špatně jsem měl redirect_uri

var fbLoginUri = client.GetLoginUrl(new
           {
               client_id = AppID,
               redirect_uri = @"https://www.facebook.com/connect/login_success.html",
               response_type = "token",
               display = "popup",
               scope = "user_friends"
           });
 
Nahoru Odpovědět 8.10.2015 18:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.