我正在尝试Facebook AccountKit,如下所示:https://developers.facebook.com/docs/accountkit/android/integrating
我用:
启动了AccountKitAcitivitypublic class CaesarStream : Stream
{
private int _offset;
private FileStream _stream;
public CaesarStream(FileStream stream, int offset)
{
_offset = offset;
_stream = stream;
}
public override int Read(byte[] array, int offset, int count)
{
//I imagine i need to call
//_stream.Read(array, offset, count);
//and modify the array, but how do i make my stream return it afterwards?
//I have no access to the underlying private FileStream fields so I'm clueless
}
public override void Write(byte[] buffer, int offset, int count)
{
byte[] changedBytes = new byte[buffer.Length];
int index = 0;
foreach (byte b in buffer)
{
changedBytes[index] = (byte) (b + (byte) _offset);
index++;
}
_stream.Write(changedBytes, offset, count);
}
}
在我结束时使用“已验证”完成SMS登录流程后,当我在我的活动中调用AccountKit.getCurrentAccount(...)时,我收到“来自服务器的API调用需要appsecret_proof参数”错误。< / p>
这只能通过将“App Secret Proof for Server API调用”关闭来“解决”。这会让我的应用不那么安全......有什么建议吗?
答案 0 :(得分:0)
如果将“启用客户端访问令牌流”设置为true,则只会在登录流结束时返回代码。您还需要设置ResponseType.CODE。然后,您可以将其替换为服务器上的令牌。
如果您将“Require app secret”设置为true,则只能从服务器调用/ me(以及其他一些)。 getCurrentAccount实际上包装/ me端点,然后无法调用。