问题标签 [facebook-android-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 是否可以在 Android 应用程序中使用 extendAccessTokenIfNeeded 扩展 Facebook 令牌?
我认为这可能会影响到很多 Facebook/Android 开发人员,但似乎并没有太多关于这个话题的讨论......
我的问题
有没有人使用 extendAccessTokenIfNeeded 函数成功刷新了令牌?如果您确实成功了,那么设备(或模拟器)运行的是什么版本?
背景
我收到一封来自 Facebook 的电子邮件,说从 2012 年 5 月 1 日起将弃用 offline_access 权限,并且 Facebook 建议升级到他们最新的 SDK。美好的。
我升级到最新的 SDK,官方的 Facebook 应用程序安装在我的设备上,并且(最终!)单点登录似乎工作正常。我收到了 60 天的代币,这又没问题。
当我尝试使用 extendAccessTokenIfNeeded(Context context, ServiceListener serviceListener) 时出现问题。我无法让它在更长的到期时间内刷新我的令牌。我在两次尝试之间等待了 24 小时,但令牌不会刷新。我可以获得刷新令牌的唯一方法是注销并登录。这也发生在我使用示例项目“Hackbook”时。
最明显的答案是我做错了什么,但是,向 Facebook 提交了一份错误报告说......“应该ExtendAccessToken 实际上几乎总是返回错误。” 该报告已被列为优先“愿望清单”。
extendAccessTokenAsNeeded() 的替代方案
在Facebook 文档中,关于 offline_access 弃用令牌可以使用 Graph API 进行扩展。但是,这样做的缺点是需要在 URL 中包含“App Secret”。一个优点是用户不需要在他们的设备上安装官方的 Facebook 应用程序。
其他想法和顾虑
通过将 Facebook.java 中的 extendAccessTokenIfNeeded 函数更改为始终返回 true,我想我让它刷新一次。(我说“认为”的原因是因为它不会重复这种行为,我怀疑我必须再等 24 小时才能再次成功)
我注意到 Hackbook 需要导入AndroidHttpClient。这仅适用于 API 8 及更高版本。这是否意味着 Facebook SSO(特别是令牌刷新)只能在 API 8 及更高版本的设备上运行?
SDK 中包含的Facebook.apk相当陈旧。也许这就是为什么令牌在运行 API 8 及更高版本的模拟器上不刷新的原因?
最后,所有这些都只与那些安装了官方 Facebook 应用程序的人有关!对于那些没有官方 Facebook 应用程序的人,需要完成另一种方法(现在只是抱怨!)
相关 Facebook 链接
GitHub 上的 Facebook-Android-SDK
相关堆栈溢出问题
Facebook 60 天访问令牌和已弃用的 Offline_Access
android - 在 Android 应用中获取刷新的 Facebook 令牌的代码是什么?
我正在开发一个 Android 应用程序。随着 Facebook 的离线访问权限即将被弃用,我正在尝试使用 Graph API 来扩展 Facebook 令牌。
谁能提供详细的代码来演示如何将上面的代码实现到android应用程序中并获取刷新的Facebook令牌?
感谢您的时间。
更新二:
进步(我认为)!
将完整 URL 与 facebook 请求方法一起使用会导致将基本 URL 添加到 URL 的开头所以而不是
应该使用
但是我现在收到响应 {"error":{"message":"Error validating application. Invalid application ID.","type":"OAuthException","code":190}}
更新一:
这是我尝试过的。代码完成,即调用侦听器上的 OnComplete,但响应不包含新的访问令牌或到期值。
这是我的 RefreshListener 版本...
代码完成,即调用侦听器上的 OnComplete,但响应不包含新的访问令牌或到期值。回应是...
当我将相同的 URL(带有字母数字当前令牌值)放入 Web 浏览器时,响应确实包含访问令牌。
相关信息
Facebook 的 offline_access 权限将于 2012 年 5 月 1 日弃用
请不要建议在 onResume() 中使用 extendAccessTokenIfNeeded 函数。我也遇到了麻烦,这就是我正在研究 Graph API 令牌刷新的原因:-)
相关堆栈溢出问题
是否可以在 Android 应用程序中使用 extendAccessTokenIfNeeded 扩展 Facebook 令牌?(我的问题)
在 5 月 1 日后弃用后,offline_access 将如何工作?
保护用于 extendAccessToken 使用的应用程序机密 (Java/Android)
相关 Facebook 链接
android - 安装 facebook sdk
我是为 android 开发的新手,我在安装facebook sdk
.
我已按照本教程step 4
进行操作,但
在尝试运行应用程序(根本不更改我以前的工作代码)后遇到问题,我在 facebook 中遇到错误
我究竟做错了什么?
android - 用于 Android 视频上传的 Facebook - 适用于一个应用程序而不是另一个应用程序
将视频上传到 Facebook 时遇到一个奇怪的问题...
我的代码基于这个答案:Is Uploading Videos from an SD Card to Facebook possible with the Facebook SDK?
它适用于一个 Facebook 应用程序,但不适用于另一个。
我作为管理员拥有 2 个 Facebook 应用程序。它们都使用我的调试密钥哈希设置,并且它们都具有完全相同的设置。
我在代码中唯一更改的是应用 ID(第一个应用或第二个应用)。
这两个应用程序的行为是:
- 授权成功
- 上传视频的代码运行成功,上传视频后调用onComplete()。
- 对于第一个应用程序(有效),视频出现在我的 Facebook 个人资料中。对于第二个,它没有。
同样,我所做的唯一更改是更改应用 ID,以便使用 2 个 facebook 应用中的每一个进行测试。
有什么见解吗?
更新
在下面回答了我自己的问题。
java - 使用 facebook android 登录
我正在使用 facebook 创建登录。用户只用 facebook 登录 1 次,我需要得到它的 facebook 用户 ID。
有我正在使用的代码:
所以我在回调这个方法时遇到了一个异常:
还有一个例外:
所以我应该更改代码中的某些内容还是有其他问题?
基本上我需要用户在下载应用程序时登录一次,我需要获取他的用户 ID。
谢谢。
编辑:
我已经添加了对互联网的许可。所以问题出在我的互联网上。无法访问 Facebook。
现在的问题是:在这一行中:
我返回空值。
java - AsyncTask 和回调 Android
我需要使用 Facebook 登录,因此我下载了 sdk 并创建了我的方法。
在我获得用户已登录的信息后,我需要将其发送到我的网络服务并回调我的活动。
这是我的代码。onComplete 我试图解释我需要什么:基本上我需要回调我当前的活动。
也许你有一些想法?谢谢。
编辑:
android - 从我的应用程序登录到 facebook 可以在模拟器上运行,但不能在设备上运行
这是我登录 facebook 的代码。
在模拟器上它工作得很好。我已经尝试了 3 台设备,这些设备已经安装了 facebook,这就是问题所在。
它只是在加载时旋转,它什么也不做。我再次看到登录按钮。然后我尝试从原始 facebook 应用程序中注销,当按下我的应用程序上的登录按钮时,我看到了登录窗口,但现在我以前在登录模拟器时看到的是原始 facebook 应用程序的登录窗口。就像是已经开始了这个。
我使用的代码取自 hackbook.java
json - 发布引用类型的对象
这个问题我已经有一段时间了,我也看到其他人也有这个问题。它必须处理发布您在 Open Graph 中创建的自定义对象以与您的应用程序一起发布。我主要在所有平台上都遇到这个问题,但现在假设我使用的是 Android。如果有人在 C# 或 IOS 甚至 PHP 中完成了此操作,请发布您的答案。
一个例子:
我有一个向 Facebook 发布餐点的对象。假设它的属性如下。
现在我的 Open Graph 中有另一个对象,它叫做 DailyFood。它具有如下属性。
现在,当我去发帖时,我尝试在 Java 中执行以下操作。
这是我生成以下错误代码的地方。
现在我知道它说 OAuthException 但我可以使用这个应用程序将提要发布到 Facebook 就好了。如果其他人在任何平台上遇到此错误并找到解决方案,请在此处发布。
谢谢!
facebook - Facebook 对话框和返回按钮
当使用 facebook android sdk 打开对话框时,一切正常。
但是,如果用户单击“后退”按钮,则对话框确实会关闭,但不会调用对话框侦听器的onCancel方法(或任何其他方法)。
我搜索了这个问题,并从 github 上的 fb android sdk 中找到了这个拉取请求:Calls Cancel on DialogListener when Dialog is Canceled。
我参加了一部分并对其进行了一些修改以得到这个:
我将它添加到FbDialog类中,确实这似乎可以解决问题。
我想知道为什么这不是 sdk 的一部分?该拉取请求已有一年多的历史,最后一个响应大约有 11 个月的历史。为什么不将它添加到 sdk 源?
由于该解决方案正在运行,因此并不紧急,但我不喜欢修改 facebook sdk 的源代码,因为以后可能会出现问题(如果/当它们更新时)。
有任何想法吗?
android - 从 android 应用程序打开一个 facebook 页面?
如何启动在手机上打开 Facebook 应用程序并导航到 Facebook 中首选页面的意图?
我试过:
好吧,无论我写什么“1234567891”,它总是导航到我的页面。总是对我而不是其他人。
我怎么能这样做?