我正在写一个iPhone应用程序.
我想让用户选择邀请朋友开始通过Facebook使用我的应用程序.
更具体地说,我想提供一个对话框,让用户选择要邀请的特定朋友.
我怎样才能做到这一点?
谢谢.
iphone facebook objective-c facebook-graph-api facebook-ios-sdk
我已经在Xcode 6中集成了Facebook sdk(使用swift).在登录期间,我请求public_profile权限:
FBSession.openActiveSessionWithReadPermissions(["public_profile"], allowLoginUI: true, completionHandler: {
...
...
Run Code Online (Sandbox Code Playgroud)
所以我请求用户的信息:
FBRequestConnection.startForMeWithCompletionHandler { (connection, user, error) -> Void in
...
...
Run Code Online (Sandbox Code Playgroud)
为什么用户对象不包含个人资料图片?如何获取用户个人资料图片?它不是public_profile的一部分?
我得到以下信息:
2015-01-25 01:25:18.858 Test[767:23804] {
"first_name" = xxx;
gender = xxx;
id = xxxxxxxxx;
"last_name" = xxxxxx;
link = "https://www.facebook.com/app_scoped_user_id/xxxxxxxxx/";
locale = "xxxxx";
name = "xxxxxxx xxxxxxx";
timezone = 1;
"updated_time" = "2013-12-21T18:45:29+0000";
verified = 1;
}
Run Code Online (Sandbox Code Playgroud)
PS:隐私的xxx
这比任何事情都更有用.在调试我的ios应用程序时,当我尝试访问登录提示(aka safari)时,我无法在错误代码8上找到任何内容.在我的应用程序中点击登录到facebook按钮后,它会尝试打开safari,然后将我转回到我的应用程序的登录页面.该错误是由权限数组引起的.我获得了"public_profile"的许可拼写为"公开个人资料",这显然是一个错误.因此,如果您收到com.facebook.sdk.core错误8,请确保您的权限已更正.
希望能帮助别人.
有谁知道如何将Facebook"喜欢"按钮放入iOS应用程序?我已经尝试过这篇博客文章中描述的方法.但我真的不喜欢这种方法,因为它丑陋的登录对话框.而且,更重要的是,它使用户登录两次.例如,如果用户没有登录,用户希望将消息发布到他的墙上我称之为标准FBLoginDialog,之后用户发布消息他可能想要按"喜欢"按钮并且他必须再次登录 - 这是非常糟糕的用户体验.
怎样成为?如何在我的iOS应用程序中为用户提供"喜欢"功能?
facebook facebook-like facebook-graph-api ios facebook-ios-sdk
我想从Facebook获得不是我的应用用户的朋友列表,并且能够邀请他们.
使用FBWebDialogs
我可以选择用户,但我想知道foursquare是如何做到的?截图:
我想在Objective-C应用程序中使用一些Swift pod,所以我需要使用框架而不是静态库.但是use_frameworks!
在我的Podfile中启用会导致#import
错误.
我的Podfile:
platform :ios, '8.0'
use_frameworks!
pod 'AFNetworking', '2.6.0'
pod 'Typhoon'
pod 'SSKeychain'
pod 'JBWebViewController'
pod 'TTTAttributedLabel'
pod 'HockeySDK'
pod 'GoogleAnalytics'
pod 'Intercom'
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'UIButton+Activity'
pod 'HexColors'
pod 'AFNetworkActivityLogger'
pod 'HCSStarRatingView', :git => 'https://github.com/hsousa/HCSStarRatingView.git'
pod 'LGSideMenuController'
pod 'DateTools'
pod 'SDWebImage'
pod 'SSCWhatsAppActivity'
pod 'UIViewController+BlockSegue'
Run Code Online (Sandbox Code Playgroud)
第一个问题是SSKeychain
pod:
在代码中我使用"引号"包括SSKeychain #import "SSKeychain/SSKeychain.h"
,但如果我理解正确,我需要<angle>
从现在开始使用#import <SSKeychain/SSKeychain.h>
?但在这种情况下,我收到相同的错误,但在我的代码中.
我的构建阶段:
无论如何,我发现SSKeychain的叉子带有"引号"导入(https://github.com/adamwulf/sskeychain/commit/2b7fd878415e8e4f23f74636cdd8c993466d0749)并切换到那些版本.
但现在我和许多其他豆荚(几乎所有豆荚)都有同样的问题:
在应用中导入: #import "FBSDKCoreKit/FBSDKCoreKit.h"
我真的需要分叉每个repo并更改import语句吗?或者我以错误的方式包括豆荚?
PS:我在每次构建尝试之前清理派生数据和项目.
Cocoapods版本:0.39.0
最近Facebook的服务器上有关于他们如何处理登录请求的事情一定有所改变,因为这曾经完美地工作并突然停止.
(我们正在使用,FBSDKLoginManager.loginBehavior = FBSDKLoginBehaviorWeb
因为我们的应用程序被复制用于多个品牌(一个代码库,许多应用程序)以及我们使用本机登录遇到的问题.)
无论如何,当我们尝试向用户呈现登录webview时(在它们甚至让他们尝试登录之前),这就是我们现在看到的:
(未登录:您尚未登录.请登录并重试.)
这是我们用来呈现登录视图的代码:
NSString *const publish_actions = @"publish_actions";
FBSDKLoginManager* login = [FBSDKLoginManager new];
login.loginBehavior = FBSDKLoginBehaviorWeb;
[login logInWithPublishPermissions:@[publish_actions] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
[FBSDKAccessToken setCurrentAccessToken:result.token];
// ...
}];
Run Code Online (Sandbox Code Playgroud)
另请注意,此问题并非特定于iOS.我们的Android应用程序看到了同样的事情(并且直到最近它再次工作正常).
正如facebook-ios-sdk的自述文件中所述,我的应用程序在执行任何API调用之前调用Facebook#authorize:delegate:
此方法要求用户进行身份验证(在Facebook应用程序或Safari中),然后将控制权交还给我的iPhone应用程序.问题是它每次调用方法时都要求用户进行身份验证.如果他们已经授予我的应用程序权限,他们会收到一条消息,说该应用程序已经获得授权,他们必须按Okay才能返回我的应用程序.它看起来不太专业.
所以我有两个问题:
用户是否总是必须重新授权才能拨打Facebook电话?我一直以为它会将访问令牌保存在某处,也许是在用户默认值中,这样您就不需要重新授权了.
如果用户不必每次都重新授权,有没有办法检查我的应用程序是否已经拥有权限,那么用户不必看到该消息并按下确定?
我正在使用FBSDKLoginButton
允许用户登录使用Facebook
和使用
FBSDKLoginButton.readPermissions = @[@"public_profile",@"email",@"user_likes",@"email",@"user_birthday"];
要求权限,但我需要一个权限,这是我应该使用的publish_actions
FBSDKLoginManager
同
logInWithReadPermissions:@[@"public_profile",@"user_likes",@"user_birthday"]
logInWithPublishPermissions:@[@"publish_actions"]
Run Code Online (Sandbox Code Playgroud)
但这由于某种原因影响了我的许可"我的一些许可是缺少检查图像
码:-
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
// Process error
} else if (result.isCancelled) {
// Handle cancellations
} else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if ([result.grantedPermissions containsObject:@"publish_actions"]) {
// Do work
}
}
}];
[login logInWithReadPermissions:@[@"public_profile",@"",@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if …
Run Code Online (Sandbox Code Playgroud) facebook-ios-sdk ×10
ios ×6
facebook ×4
objective-c ×4
swift ×2
cocoapods ×1
int ×1
iphone ×1
swift4 ×1
xcode ×1