2015-07-15 4 views
0
string OAuthURL = @"http://www.facebook.com/dialog/oauth?client_id=app_id 
          &redirect_uri=http://www.facebook.com/connect/login_success.html 
          &redirect_type=token 
          &scope=publish_actions,user_photos"; 

dynamic result = fb.Get("oauth/access_token", new 
         { 
          client_id = "app_id", 
          client_secret = "app_secret", 
          redirect_uri = "http://www.facebook.com/connect/login_success.html", 
          code = code, 
          scope = "publish_actions,user_photos" 
         }); 

Я пробовал оба кода выше, но я не могу разрешать учетные записи. Это вызывает некоторую ошибку, например, сообщение. Кроме того, когда я получаю свои разрешения с помощью fb.Get («/ me/permissions»), ни один из разрешений, которые я написал с областью действия, не существует. Я имею в виду, что разрешения publish_stream или user_photos там не видны. Из-за этого я получаю сообщение об ошибкеFacebook Api Разрешения .Net

(OAuthException- # 200) (# 200) Пользователь не разрешил приложению выполнять это действие.

Что я могу сделать, чтобы предоставить разрешения для моего приложения или как решить эту проблему?

ответ

0

вам необходимо одобрить разрешение от facebook graph api explorer. Для этого вам необходимо перейти по адресу

Graph API Explorer -> Выберите ваше приложение -> Получить токен.

Будет список разрешений, вам просто нужно проверить, какие разрешения вы хотите. после этого вы можете одобрить свой токен из кода C#.

+0

Я сделал то, что вы сказали. Хотя доступны разрешения publish_actions и user_photos, в моей программе их не видно. Кроме того, я хочу войти в разные аккаунты, и я не могу делать то, что вы сказали со всеми учетными записями. Я хочу сделать это с помощью моего кода. Edit: Я понимаю, что токены доступа, которые я получаю от моей программы и графического api explorer, различны. Я предполагаю, что это вызывает проблему. Почему это могло произойти? – mavera

1

Вы можете получить accestoken как этот

if (code == "" || code == null) 
{ 
     //request for authentication 
     Response.Redirect("https://graph.facebook.com/oauth/authorize?client_id=" + appId + "&redirect_uri=http://localhost:5176/"); 
} 
else 
{     
     fb = new MyFB(); 
     fb.ApplicationSecret = appSecret; 
     fb.ApplicationID = appId; 
     string accessToken = fb.GetAccessToken(code); 
     fb.AccessToken = accessToken;    

     ViewData["MyName"] = fb.GetMyName();     
} 

Я советую вам использовать этот учебник в качестве будущей ссылки: http://codesamplez.com/facebook-c-sharp-api-tutorials

+0

На самом деле, я могу получить токен доступа, с этим нет никаких проблем. Я создаю приложение формы, и когда я пытался нажать кнопку «Отправить», я получаю сообщение об ошибке. Основная проблема - это разрешения. Поскольку я не могу предоставить необходимые разрешения, я не могу публиковать сообщения. Edit: Я понимаю, что токены доступа, которые я получаю от моей программы и графического api explorer, различны. Я предполагаю, что это вызывает проблему. Почему это могло произойти? – mavera

+0

Они разные, потому что accestoken обычно уникален. Вам нужно проверить правильность ваших разрешений в вашем приложении, а не только на вашем C# -коде. Поскольку полученная вами ошибка говорит вам, что ваш accestoken неверен, либо потому, что вы не получили правильного разрешения от пользователя, либо получаете неправильный вид accesstoken. Тем не менее, я думаю, что учебник может помочь в качестве ссылки. – Kyra

+0

Теперь я создаю приложение из своей учетной записи facebook, и если я вхожу в систему с моей учетной записью, нет проблем, я могу делать все, что захочу, например, предоставлять все разрешения, публикации, загрузку изображений и т. Д. Однако, если я вхожу в систему с другой учетной записью, я ничего не может сделать. Например, я вошел в систему с учетной записью моего брата. После того, как я попытался опубликовать сообщение, он потерпел неудачу. Я просмотрел разрешения и нет разрешений, кроме стандартного. Я попытался изменить разрешения из графика api explorer, но это не повлияло ни на что. – mavera

Смежные вопросы