我正在尝试将我的应用程序转换到新的Facebook SDK 3.1(支持iOS6身份验证).
我工作得很好,所以我决定从FB网站上的授权应用程序列表中删除该应用程序,以测试iOS是否会再次请求许可.
现在我第一次调用会[FBRequest requestForMe]
导致此错误:
响应:
{
"error": {
"message": "Error validating access token: Session does not match current stored session. This may be because the user changed the password since the time the session was created or Facebook has changed the session for security reasons.",
"type":"OAuthException",
"code":190,
"error_subcode":460
}
}
Run Code Online (Sandbox Code Playgroud)
一些细节:
我正在尝试按如下方式打开会话:
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
switch (state) {
case FBSessionStateOpen:
[self presentPostOptions];
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation]; …
Run Code Online (Sandbox Code Playgroud) 我按照Facebook SDK for PHP文档创建了两个文件,login.php和fb-callback.php,其中包含fb-callback.php中的所有查找逻辑.当我这样做,一切正常.
但是我想将查找逻辑移到get-posts.php并通过fb-callback.php中的ajax调用它.当我这样做时,我似乎无法获得访问令牌.我收到下面提到的错误,"访问令牌:错误的请求".
我已将fb-config.php和get-posts.php注册为有效的OAuth重定向URI.那么如何获得get-posts.php的正确参数呢?
以下是所有相关文件:
的login.php
<?php
require_once "config.php";
$redirectURL = 'https://' . $_SERVER[ 'SERVER_NAME' ] . '/r/fb-callback.php';
$permissions = ['email','user_photos','user_posts'];
$loginUrl = $helper->getLoginUrl($redirectURL, $permissions);
?>
<a href='<?php echo $loginUrl; ?>'>
<img src='continue-with-facebook.png'>
</a>
?>
Run Code Online (Sandbox Code Playgroud)
config.php文件
<?php
if( !session_id() ) {
session_start();
}
require_once '/home/bitnami/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '---',
'app_secret' => '---',
'default_graph_version' => 'v3.1',
]);
$helper = $fb->getRedirectLoginHelper();
?>
Run Code Online (Sandbox Code Playgroud)
FB-callback.php
<?php
require_once("config.php");
?>
<html>
<head>
<script type='text/javascript' src='jquery.js'></script>
<script>
var $j = jQuery.noConflict();
$j(document).ready(function …
Run Code Online (Sandbox Code Playgroud) 我开发了一个iOS应用程序,其中包含用于将Open Graph用户故事发布到Facebook的Facebook SDK.一切都很好,所以我昨天发送了我的iOS应用程序给Apple审查.
但我的问题是Facebook应用程序:我必须提交Facebook应用程序进行审核,以便公众可以使用它.但是我无法提交,因为Facebook无法通过iTunes商店中的App-ID访问我的iOS应用程序.请参阅以下错误消息:
如果我从任何公共应用程序(例如Whatsapp)插入App-ID,我可以保存我的更改,并且我可以提交Facebook应用程序.
我担心的是,如果我的iOS应用程序进入App Store并且Facebook功能不起作用,我将收到来自用户的错误评级.
所以我的问题是:如果我的iOS应用程序不向公众发布,有没有办法发送我的Facebook应用程序进行审核?
//编辑根据BjörnKaisers的回答:我只想提交我的Open Graph故事,但问题是我必须添加截图.如果我点击"添加屏幕截图",弹出窗口打开,我必须选择平台,但我无法选择我在设置中添加的iOS平台(它不可见),因为它没有iPhone商店ID.再次,如果我从公共应用程序(例如Whatsapp)添加(用于测试)iPhone商店ID,我可以选择iOS平台来添加屏幕截图.
看这里:
没有这些截图我无法提交审查:(这是一个厄运循环.
更新29.01.2014:正如我提议的那样,我选择"Webseite"作为平台,并在我的iOS应用程序中使用Facebook上传截图,希望Facebook评论者能够理解屏幕截图显示的是iOS应用程序,但今天我未通过审核:
如何在用户会话打开时获取用户名.我尝试了来自Facebook sdk示例的会话登录示例.如果有人知道解决方案,请帮助我.提前致谢.
- (IBAction)buttonClickHandler:(id)sender {
// get the app delegate so that we can access the session property
SLAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
// this button's job is to flip-flop the session from open to closed
if (appDelegate.session.isOpen) {
// if a user logs out explicitly, we delete any cached token information, and next
// time they run the applicaiton they will be presented with log in UX again; most
// users will simply close the app or switch away, …
Run Code Online (Sandbox Code Playgroud) 我有一个可以在Facebook上创建股票的iOS应用程序.共享本身工作正常,但我们没有看到"共享通道"行的文本,如附图中所示.它只是说"通过共享链接.".我希望文本"通过APPNAME共享链接".代替.
我已经尝试为Facebook App添加一些设置,但这没有帮助.
这就是我在iOS应用中触发共享的方式:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
name], @"name",
caption, @"caption",
description, @"description",
url, @"link",
picture, @"picture",
nil];
[FBRequestConnection startWithGraphPath:@"/me/feed"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
// ...
} else {
// ...
}
}];
Run Code Online (Sandbox Code Playgroud)
我在哪里可以进行此设置?它是Facebook应用程序的设置还是我必须将其添加到我的iOS应用程序中的共享调用?
有人能告诉我在哪里设置一个try/catch来捕获它吗?
02-10 22:54:35.701: E/ActivityThread(787): Failed to find provider info for com.facebook.katana.provider.PlatformProvider
Run Code Online (Sandbox Code Playgroud)
我已经知道这是因为我没有在手机中安装facebook应用程序.
我想在抛出异常时做一个Toast这不起作用.
shareButton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
try{
FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(Archivo.this)
.setLink(pagina)
.setName(nombre)
.setPicture(photo)
.setDescription(brief)
.build();
uiHelper.trackPendingDialogCall(shareDialog.present());
}
catch(FacebookDialogException ex){
int duration = Toast.LENGTH_SHORT;
CharSequence FacebookDialogError="Instale y actualize su version de Facebook";
Toast toast = Toast.makeText(activity,FacebookDialogError , duration);
toast.show();
}
}
});
Run Code Online (Sandbox Code Playgroud)
我在facebookdialog收到异常的地方设置了相同的toast,它仍然无效.
public FacebookDialog build() {
validate();
Bundle extras = new Bundle();
putExtra(extras, NativeProtocol.EXTRA_APPLICATION_ID, applicationId);
putExtra(extras, NativeProtocol.EXTRA_APPLICATION_NAME, applicationName); …
Run Code Online (Sandbox Code Playgroud) 我已经成功实现了Facebook SDK和AppEvents,以报告我的Android应用程序的安装情况。我已经验证它在仪表板上注册了最后一次安装数据,并且在Facebook上的“应用程序事件”选项卡中看到了数千个fb_mobile_activate_app事件。
我一直在应用程序上运行付费广告系列,但是,即使自添加SDK以来超过24小时,我仍收到0次安装的报告。由于我的预算基于广告的效果,因此没有任何数据似乎很奇怪。
我在这里缺少什么吗?
我需要在自己的粉丝页面上发帖子作为管理员.我创建了这个代码跳转,传递页面的id"fbPageID"将在该页面上留下帖子,但它实际上在我的个人资料上留下了帖子.
NSArray *publishPerms = @[@"manage_pages",@"publish_actions", @"publish_stream"];
[FBSession openActiveSessionWithPublishPermissions:publishPerms defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:NO completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (session.isOpen) {
[FBRequestConnection startForPostStatusUpdate:self.textBox.text place:fbPageID tags:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error){
NSLog(@"error %@",error);
}
else{
NSLog(@"POSTED %@",result);
}
}];
}
else{
NSLog(@"session not open");
}
Run Code Online (Sandbox Code Playgroud) 如果我在一个新项目中导入这个包,我根本就没有问题.
但是,当我尝试将其导入我现有的项目(具有5.0.4版本的SDK)时,导入完成后,我收到以下错误消息:
Unhandled Exception: Mono.CSharp.InternalErrorException: Internal error
at Mono.CSharp.MethodGroupExpr.IsApplicable (Mono.CSharp.ResolveContext ec, Mono.CSharp.Arguments& arguments, Int32 arg_count, System.Reflection.MethodBase& method, System.Boolean& params_expanded_form) [0x00000] in <filename unknown>:0
at Mono.CSharp.MethodGroupExpr.OverloadResolve (Mono.CSharp.ResolveContext ec, Mono.CSharp.Arguments& Arguments, Boolean may_fail, Location loc) [0x00000] in <filename unknown>:0
at Mono.CSharp.Invocation.DoResolveOverload (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.ExpressionStatement.ResolveStatement (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
at …
Run Code Online (Sandbox Code Playgroud) 我试图使用此方法将Facebook登录添加到我的应用程序,但我收到以下错误:
Error:(21, 13) error: package bolts does not exist
Error:(22, 13) error: package bolts does not exist
Error:(23, 13) error: package bolts does not exist
Error:(24, 13) error: package bolts does not exist
Error:(37, 49) error: cannot find symbol class AppLinkResolver
Error:(48, 32) error: cannot find symbol class AppLink
Error:(58, 12) error: cannot find symbol class Task
Error:(58, 17) error: cannot find symbol class AppLink
Error:(80, 12) error: cannot find symbol class Task
Error:(80, 26) error: cannot find …
Run Code Online (Sandbox Code Playgroud)