我有一个有趣的问题。 我的FB Canvas游戏处于开发模式,我获得了publish_actions批准。当我在浏览器中启动我的游戏时,我会在登录我的帐户时获得授权范围列表,它会正确列出publish_actions并且一切正常,但是当我的一个测试人员(我已经让测试人员在fb dev控制台中滚动)时会加载。然后它不会在grantScopes下列出publish_actions。 难道我做错了什么? 我是否需要请求用户以某种方式接受此新权限?
这是我的fblogin代码
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Facebook.Unity;
using UnityEngine.UI;
using System;
public class FBLogin : MonoBehaviour {
void Awake()
{
FB.Init (SetInit, OnHideUnity);
}
private void SetInit()
{
Debug.Log ("FB Init done.");
if (FB.IsLoggedIn)
{
Debug.Log ("FB Logged In.");
}else{
Debug.Log("FB NOT Logged In.");
}
}
private void OnHideUnity(bool isGameShown)
{
if(!isGameShown)
{
Time.timeScale = 0;
}else{
Time.timeScale = 1;
}
}
public void FBlogin ()
{
var perms = new List<string>(){"public_profile", "email",};
FB.LogInWithPublishPermissions(perms, AuthCallback);
}
private void AuthCallback (ILoginResult result)
{
Debug.Log(result.RawResult);
if (FB.IsLoggedIn)
{
var aToken = Facebook.Unity.AccessToken.CurrentAccessToken;
// Print current access token's User ID
Debug.Log(aToken.UserId);
// Print current access token's granted permissions
foreach (string perm in aToken.Permissions) {
Debug.Log(perm);
}
} else {
Debug.Log("User cancelled login");
}
}
}
谢谢你们。
答案 0 :(得分:1)
您请求的权限不是发布权限,而是读取权限。您需要使用
FB.LogInWithReadPermissions(new List<String>(){"public_profile", "email"}, AuthCallback)
使用请求的读取权限登录。一旦您的回叫触发,您将需要提交第二个请求:
FB.LogInWithPublishPermissions(new List<String>(){"publish_actions"}, AuthCallback)
您无法将同一请求对话框的读取和发布权限组合到最终用户。在用户实际尝试从您的应用中发布内容之前,最好不要再连续打开两个对话框,而是暂停请求发布权限。