我刚开始使用 Azure 移动服务(或任何移动开发人员)。
我已按照本教程为 Android 应用程序启用 Facebook 身份验证。http://azure.microsoft.com/en-us/documentation/articles/mobile-services-how-to-register-facebook-authentication/ http://azure.microsoft.com/en-us/documentation/articles/mobile-services-how-to-register-facebook-authentication/
我的移动服务有一个 .NET 后端,客户端是 Android。
我还设法将访问令牌保存到表中;
public async Task<IHttpActionResult> PostTodoItem(TodoItem item)
{
var currentUser = User as ServiceUser;
item.UserId = currentUser.Id;
TodoItem current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}
保存的值采用以下格式:Facebook:907xxxxxxxxx757
我正在尝试使用 Facebook SDK 获取用户的名字。
var currentUser = User as ServiceUser;
var accessToken = "current.Id";
var client = new FacebookClient(accessToken);
dynamic me = client.Get("me", new { fields = "name,id" });
string firstName = me.name;
但我的 Android 虚拟设备 (AVD) 上收到以下错误:“{message: 发生错误}”
Eclipse logcat 似乎没有返回任何错误...我猜是因为它不是 Android 应用程序产生错误,而是移动服务。
使用此人的 Facebook 名称(我当然不会拥有)是可行的;
var currentUser = User as ServiceUser;
var client = new FacebookClient();
dynamic me = client.Get("zuck" });
为什么这个方法行不通?
或者我对 Facebook 令牌的理解不正确?
该令牌是否可能存在于 AVD 上,因此移动服务无法使用该令牌?