我正在创建一个测试应用程序来测试使用最新的facebook SDK更新我们现有的应用程序问题是我需要获取我知道的电子邮件地址取决于用户是否在他的帐户中提供了一个.现在,我正在使用的帐户提供了一个肯定的帐户,但由于未知原因,facebook SDK仅提供user_id和帐户的全名,而不提供任何其他内容.我对此感到困惑,因为SDK3及以上版本提供了比更新的SDK4更多的信息,而且我对如何获取电子邮件感到迷茫,因为到目前为止我看到的所有答案都没有提供我的电子邮件.到目前为止,这是我的代码:
登录按钮
@OnClick(R.id.btn_login)
public void loginFacebook(){
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email"));
}
Run Code Online (Sandbox Code Playgroud)
LoginManager回调:
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
requestUserProfile(loginResult);
}
@Override
public void onCancel() {
Toast.makeText(getBaseContext(),"Login Cancelled", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException e) {
Toast.makeText(getBaseContext(),"Problem connecting to Facebook", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
以及用户个人资料的请求:
public void requestUserProfile(LoginResult loginResult){
GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject me, GraphResponse response) {
if (response.getError() != null) {
// handle error
} else {
try {
String email …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Facebook Graph API开发一个Web应用程序.
我目前的目标是仅检索附有位置的帖子.
检索包含和不包含位置的帖子已经有效,我无法仅检索包含位置的帖子.
检索这两种类型的查询如下所示: '/me/feed?fields=id,name,message,picture,place,with_tags&limit=100&with=location'
应该仅检索具有位置的帖子的查询如下所示: /me/feed?fields=id,name,message,picture,place,with_tags&limit=100&with=location
&with=location我遇到的问题是,使用参数我Uncaught (in promise) undefined在代码的这一部分出错:
if (response.paging && response.paging.next) {
recursiveAPICall(response.paging.next);
} else {
resolve(postsArr);
}
} else {
// Error message comes from here
reject();
}
Run Code Online (Sandbox Code Playgroud)
日志显示以下内容:
DEBUG: -------------------------------
DEBUG: Ember : 2.4.5
DEBUG: Ember Data : 2.5.3
DEBUG: jQuery : 2.2.4
DEBUG: Ember Simple Auth : 1.1.0
DEBUG: -------------------------------
Object {error: Object}
error: Objectcode:
code: 1
1fbtrace_id: "H5cXMe7TJIn"
message: "An unknown error has occurred."
type: "OAuthException"
__proto__: …Run Code Online (Sandbox Code Playgroud) 当我试图在Facebook Graph API上获得我所有的"喜欢"(以前的粉丝页面)时,有时它会返回一个空集:
{
"data": [
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用https://graph.facebook.com/me/likes?access_token=MY_ACCESS_TOKEN和graph.facebook.com/vinch/likes?access_token=MY_ACCESS_TOKEN,但结果完全相同(空).
知道它可能是什么吗?我需要知道用户是否喜欢(是粉丝)特定页面.
以下是我们希望实现的目标:一个WordPress网站,允许用户使用Facebook或WordPress注册/登录,并对帖子/页面/内容具有相同的访问权限.从目前为止的所有研究来看,这似乎并不重要......
这是我们的要求:
Facebook的
WordPress的
Facebook的
WordPress的
关于如何实现这些要求的任何智慧言论?
我正在使用facebook sdk登录我的应用程序.该应用程序在HTC设备上运行良好.如果没有安装facebook应用程序,该应用程序也可以在三星设备上正常工作.
但是如果手机上已有facebook应用程序,然后用户安装我的应用程序,则用户从未登录.据我所知,我认为这可能是单点登录的问题,我认为这与生成有些关联正确的应用程序哈希键,并使用我用于登录移动应用程序的Facebook应用程序中的哈希键.
请指导我如何创建哈希键.我正在运行ubuntu 10.4.
当我在终端中运行此命令时: -
keytool -exportcert -alias <your keystore alias name>.keystore -keystore ~/.android/<your keystore name>.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
我从未被提示输入密码,但我获得了哈希密钥.
我正在ASP.NET MVC 5中开发一个网站(目前使用RC1版本).该网站将使用Facebook进行用户身份验证和检索初始个人资料数据.
对于身份验证系统,我使用的是基于OWIN的新ASP.NET身份引擎(http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc -5.aspx),因为它极大地简化了与外部提供商进行身份验证的过程.
问题是,一旦用户首次登录,我想从Facebook个人资料中获取其电子邮件地址,但此数据不包含在生成的声明中.所以我考虑过这些替代方案来获取地址:
指示ASP.NET标识引擎将电子邮件地址包含在从Facebook检索的数据集中,然后转换为声明.我不知道这是否可行.
使用Facebook图形API(https://developers.facebook.com/docs/getting-started/graphapi)通过使用Facebook用户ID(包含在声明数据中)来检索电子邮件地址.但是,如果用户将其电子邮件地址设置为私有,则此操作无效.
使用Facebook图形API,但指定"我"而不是Facebook用户ID(https://developers.facebook.com/docs/reference/api/user).但是需要一个访问令牌,我不知道如何(或者根本不可能)检索ASP.NET用来获取用户数据的访问令牌.
所以问题是:
如何指示ASP.NET标识引擎从Facebook检索其他信息并将其包含在声明数据中?
或者,我如何检索生成的访问令牌,以便我自己可以询问Facebook?
谢谢!
注意:对于身份验证系统,我的应用程序使用基于此SO答案中链接的示例项目的代码:https://stackoverflow.com/a/18423474/4574
asp.net-mvc facebook-graph-api owin asp.net-mvc-5 asp.net-identity
Facebook刚刚发布了新的反应按钮,但我无法找到从Graph API v2.5获取此信息的方法,因为/ likes边缘仅返回交互的总数.
有没有人想出办法让每个帖子得到这个详细的反应?
在offline_access到期之后,我正在做一些测试.我认为,因为我的应用程序与Facebook进行的所有交互都是通过我的服务器完成的,并且是由用户在几个应用程序端点(手机应用程序,网站,桌面应用程序)上的用户活动启动的,我可以使用应用程序访问令牌发布到墙上代表我的用户,假设即使我在授权期间请求的访问令牌过期,应用程序仍然是被授权的.这似乎是这里的文档暗示的内容
作为应用程序进行身份验证允许您获取访问令牌,该令牌允许您代表应用程序而不是用户向Facebook API发出请求.[...] App访问令牌也可用于代表已授予您应用程序发布权限的用户向Facebook发布内容.
App Access令牌通常不会过期.生成后,它们无限期有效.
但是,我需要测试一下.所以我需要使一些令牌过期.我尝试使用您在开发者网站中创建的官方测试用户,这些用户只能与您应用的沙箱和其他用户进行交互,但他们的令牌似乎永久有效一小时.
所以我尝试使用我为此创建的真正的facebook用户,并且更改我读过的密码应该使令牌过期.但事实并非如此.令牌仍然在调试器中报告有效,我仍然可以将它用于很多事情,包括发布到我的墙上.完全退出Facebook网站后,我甚至可以继续使用此令牌.
是什么赋予了?如何获得过期的access_token以便我可以测试我的应用程序访问令牌?
编辑:我认为它会起作用.我创建了我的应用程序访问令牌并使用CLIENT-SIDE流来获取仅持续2个小时的用户访问令牌,因此我实际上可以等待它过期.到期后,我使用Graph API资源管理器尝试发布状态更新,但未能告诉我令牌何时到期.然后,我使用成功的应用程序令牌尝试了相同的操作.
所以我正在尝试为新的Facebook Messenger API设置机器人.
我正在关注快速入门.
我设置webhook好了,在我的webhook中看到它,
我打电话给:
https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=%3Ctoken%3E
Run Code Online (Sandbox Code Playgroud)
它没有抛出任何错误,
但是当我进入我生成访问令牌的页面并发送消息时,它不会调用我的webhook.我检查了httpaccess,它没有调用它.
有没有办法调试这个或任何想法?
此外,我仍然困惑的一件事是如何支持从一个Facebook应用程序管理多个页面?任何人都知道答案,或者您是否需要创建一个新的应用程序并获得每个页面的权限?
当我将ios SDK Pod安装到我的ios项目中时,它说:“:-1:不支持SWIFT_VERSION'5.0',受支持的版本是:3.0、4.0、4.2。(在目标'FacebookCore'中)”
我正在使用swift 4.2任何解决方案吗?