Ist es möglich, als eine Anwendung anstelle eines Benutzers mit dem Facebook C # SDK zu authentifizieren?

StackOverflow https://stackoverflow.com/questions/4676201

Frage

Facebook OAuth Implementierung ermöglicht es Ihnen, als eine Anwendung zu authentifizieren (und nicht als Benutzer). Ist es möglich, dies mit dem Facebook C # SDK zu erreichen?

Reich

War es hilfreich?

Lösung 2

Wie pro @ jfar Antwort, es sieht nicht, als ob die SDK native Anwendung Authentifizierung unterstützt. Meine Lösung war, die Zugriffstoken selbst zu beziehen und dann wenden sie auf SDK.

Im Folgenden finden Sie meine eher grobe Konsolenanwendung für das Zugriffstoken abgerufen werden.

    static void Main(string[] args) {
        var webRequest = (HttpWebRequest)HttpWebRequest.Create("https://graph.facebook.com/oauth/access_token");
        webRequest.Method = "POST";
        webRequest.ContentType = "application/x-www-form-urlencoded";

        var requestString = "grant_type=client_credentials&client_id=***client_secret=***";

        byte[] bytedata = Encoding.UTF8.GetBytes(requestString);
        webRequest.ContentLength = bytedata.Length;

        var requestStream = webRequest.GetRequestStream();
        requestStream.Write(bytedata, 0, bytedata.Length);
        requestStream.Close();

        var response = webRequest.GetResponse();
        var responseStream = new StreamReader(response.GetResponseStream());
        var responseString = responseStream.ReadToEnd();

        responseStream.Close();
        response.Close();

        if (!String.IsNullOrWhiteSpace(responseString)) {
            var accessToken = responseString.Replace("access_token=", "");
            var fbApp = new FacebookApp(accessToken);

            long id = ****;
            dynamic results = fbApp.Query("select name, email, website from user where uid=" + id.ToString());
            dynamic user = results[0];

            Console.Write(String.Concat(user.name, " ", user.email, " ", user.website));
        }
        else {

        }

        Console.ReadLine();
    }

Wie man sehen kann ich OAuth-Authentifizierung initiiert HttpWebRequest verwenden. Die Antwort gibt die Anwendung Zugriffstoken, die dann direkt in eine der FacbeookApp Bauer übergeben wird, gibt mir Anwendung Zugriff auf die Facebook C # SDK.

Reich

Andere Tipps

Sieht aus wie der Facebook C # SDK helfen Ihnen nicht mit einem Zugriff zu erhalten Token als Benutzer oder einer Anwendung. Basierend auf diesen Kommentar auf der Facebook C # SDK:

Dieses SDK enthält kein Verfahren ein Token von einem Benutzer bekommen, wie die beste Methode hängt davon ab, welche Art die Anwendung verwendet es.

Ihr ziemlich viel auf eigene Faust.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top