我最近开始研究Facebook API,并试图找出如何检索另一个用户的朋友列表(在这种情况下,用户是我的朋友).
到目前为止,我只研究了如何找到一个我也是朋友的朋友.然而Friends Wheel应用程序可以这样做,因为你可以在你的一个朋友上生成一个轮距,所以我猜它是可能的.
有人知道怎么做吗?
我正在尝试在我的网站上使用新的Facebook Graph API.这就是我所拥有的:
在页面的某个地方:
<fb:login-button autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button>
Run Code Online (Sandbox Code Playgroud)
标签后面:
<div id="fb-root">
</div>
<script type="text/javascript">
window.fbAsyncInit = function () {
FB.init({ appId: '<%= ConfigurationManager.AppSettings["FBAppId"] %>', status: true, cookie: true, xfbml: true });
/* All the events registered */
FB.Event.subscribe('auth.login', function (response) {
// do something with response
alert("login success");
});
FB.Event.subscribe('auth.logout', function (response) {
// do something with response
alert("logout success");
});
FB.getLoginStatus(function (response) {
if (response.session) {
// logged in and connected user, someone you know
alert("login success");
}
});
}; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个操纵当前页面的Google Chrome扩展程序(基本上添加了一个按钮).
在我的内容脚本中,我想加载Facebook Graph API:
$fbDiv = $(document.createElement('div')).attr('id', 'fb-root');
$fbScript = $(document.createElement('script')).attr('src', 'https://connect.facebook.net/en_US/all.js');
$(body).append($fbDiv);
$(body).append($fbScript);
console.log("fbScript: " + typeof $fbScript.get(0));
console.log("fbScript parent: " + typeof $fbScript.parent().get(0));
console.log("find through body: " + typeof $(body).find($fbScript.get(0)).get(0));
Run Code Online (Sandbox Code Playgroud)
但是,脚本似乎没有添加到body.这是控制台日志:
fbScript: object
fbScript parent: undefined
find through body: undefined
Run Code Online (Sandbox Code Playgroud)
关于我做错了什么的任何想法?
javascript google-chrome google-chrome-extension facebook-graph-api
我参考以下链接完成了以下代码,以创建在Facebook上传多张照片的批量请求.
我有一些解决方案可以通过这个Facebook图形API在Facebook上传多张照片.
码:
NSString *jsonRequest1 = @"{ \"method\": \"POST\", \"relative_url\": \"me/photos\" , \"body\": \"Hello 1\", \"attached_files\": \"file1\" }";
NSString *jsonRequest2 = @"{ \"method\": \"POST\", \"relative_url\": \"me/photos\" , \"body\": \"Hello 2\", \"attached_files\": \"file2\" }";
NSString *jsonRequestsArray = [NSString stringWithFormat:@"[ %@, %@ ]", jsonRequest1, jsonRequest2];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:jsonRequestsArray,@"batch",nil];
[params setObject:UIImagePNGRepresentation(self.image1) forKey:@"file1"];
[params setObject:UIImagePNGRepresentation(self.image2) forKey:@"file2"];
[objFacebook requestWithGraphPath:@"me" andParams:params andHttpMethod:@"POST" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
现在,当我运行此代码时,我得到以下输出.
结果词典 - (void)request:(FBRequest *)request didLoad:(id)result
(
{
body = "{\"error\":0,\"error_description\":\"File file1 has not been attached\"}"; …Run Code Online (Sandbox Code Playgroud) 在控制台中接收此消息:拒绝显示在框架中,因为它将"X-Frame-Options"设置为DENY
当站点在移动版本中显示时会发生这种情况,如果用户代理是移动设备,则只会提供一组不同的html和资产.
它会在控制台错误消息中显示m.facebook.com.
FB.ui(
{
method: 'share',
href: 'https://www.espn.com/mlb',
},
function(response) {
if (response && !response.error_code) {
console.log('shared_post');
//facebook_post_to_fanpage(access_token_data, link_id, song);
return true;
} else {
return false;
}
}
);
Run Code Online (Sandbox Code Playgroud)
我可以在网站的移动版本上使用FB.api,以及登录和getauth没有任何问题,但是当我尝试使用FB.ui时,它给我配合,包括共享和提要方法.
如果我使用的是facebook javascript sdk,我想我会很清楚.
前言:
我知道这个问题之前已经提到过SO,但是这些帖子已经过时了,我认为目前还没有与Apple的决策相关.
拒绝原因:
17.2详情
我们注意到您的应用使用Facebook登录进行身份验证,但不包括该网站提供的基于帐户的功能,这在App Store中是不允许的.
下一步
请修改您的应用以包含该社交网络的基于帐户的功能或使用您自己的身份验证机制.
我的应用:
我的应用程序实现Facebook身份验证并仅抓取用户的名字和个人资料图片,并由用户自行决定显示它们(当用户执行某项功能时).
我曾两次向苹果公司说过,他们回答说这还不够.
他们一直在鹦鹉学舌,我需要添加Facebook的"基于帐户的功能".我让他们详细说明,这些是我给出的例子:
"在适用的情况下实施好友列表,社交图表和游戏分数是合适的."
所以这些问题出现了:
如果我的应用程序没有从上面的示例中获益,该怎么办
使用Facebook作为身份验证方法和获取基本数据有什么问题?
而这个踢球者 - 我可以实现哪些Facebook的"基于账户的功能"的例子有资格获得使用Facebook身份验证的特权?
我相信我不会从Apple得到任何直接的答案,所以我呼吁这里的专家希望能够启发我.
提前致谢.
我正在尝试使用 Laravel 和 socialite 包将我的应用程序连接到 facebook 登录。但我不知道为什么 facebook 向我显示此错误。我搜索了互联网,但找不到任何内容。我该如何解决此错误?
我认为如果我与 https 建立连接,它会起作用,但在再次创建 https 后会出现错误。
我在 Laravel 中的代码:
网页.php
Route::get('login/{provider}', 'SocialController@redirect');
Route::get('login/{provider}/callback','SocialController@Callback');
Run Code Online (Sandbox Code Playgroud)
社交控制器.php
public function redirect($provider)
{
return Socialite::driver($provider)->redirect();
}
public function Callback($provider){
$userSocial = Socialite::driver($provider)->stateless()->user();
$users = User::where(['email' => $userSocial->getEmail()])->first();
if($users){
Auth::login($users);
return redirect('/');
}else{$user = User::create([
'username' => $userSocial->getName(),
'email' => $userSocial->getEmail(),
'provider_id' => $userSocial->getId(),
'provider' => $provider,
]);
return redirect()->route('home');
}
}
Run Code Online (Sandbox Code Playgroud) 我最近发现这篇博文说,可以通过Facebook应用程序(来自API)标记状态更新中的某个人:
但是,它似乎对我不起作用.
它以三种不同的方式尝试了它:
$post = $facebook->api('/me/feed', 'post', array(
'access_token' => $session['access_token'],
'message' => 'Hello @[562372646:Lionel Cordier], how are you?'
));
Run Code Online (Sandbox Code Playgroud)
要么
$access_token = $session['access_token'];
$message = 'Hello @[562372646:Lionel Cordier], how are you?';
$curl_post = 'access_token='.$access_token.'&message='.$message;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/me/feed');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curl_post);
$data = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
要么
$access_token = $session['access_token'];
$message = 'Hello @[562372646:Lionel Cordier], how are you?';
$curl_post = 'access_token='.$access_token.'&status='.$message;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.facebook.com/method/users.setStatus'); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用javascript sdk恢复我的facebook新闻Feed中的上周帖子.我能够获得第一页,但后来,我不知道如何继续迭代其他页面.我用以下代码尝试过:
$('#loadPosts').bind('click', function() {
FB.api('/me/home',{since:'last week'}, getPosts);
});
getPosts = function(response){
for (element in response.data){
post = response.data[element]
console.log(post);
}
previousPage = response.paging.previous;
console.log(previousPage);
// can i call FB.api(previousPage, getPosts); ??
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个URL作为上一页,我不知道如何从该URL进行javascript FB.api调用.有任何想法吗?
{
"error": {
"message": "(#4) User request limit reached",
"type": "OAuthException"
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定这个错误的原因,是的,我已经做了很多搜索类似用户的问题(他们是错误#17,或达到app限制).我正在常规的图形API调用(例如https://graph.facebook.com/me)上执行此操作,不一定像其他人遇到过FQL.
User request limit reached使它看起来像每用户限制,但根据http://www.fb-developers.info/tech/fb_dev/faq/general/gen_10.php,#4是"Application request limit reached"和#17是"User request limit reached".
我不相信无论如何我都达到了100M /天的app限制.我只为几个用户的auth令牌获取它,所以它不是我得到的应用程序范围的错误消息.当我要求太快时,我通常会得到FQL_EC_RATE_LIMIT_EXCEEDED.
但是对于那些有上述错误的用户"(#4) User request limit reached",我暂时将他们列入加载数据的黑名单,但是当我尝试在一天后使用该身份验证令牌访问时,他们仍然会收到上述错误.
所以总结......
我不明白"(#4) User request limit reached"当该用户的auth-token未在24小时之前的任何查询中使用时我怎么能得到.我不知道这些用户有什么特别之处.
任何建议或意见将不胜感激.几天前它只有一个用户,但今天第二个用户开始遇到这个问题,我担心这个问题将来会变得更糟,没有明确的解决方案.
facebook ×6
javascript ×3
cross-domain ×1
ios ×1
ipad ×1
iphone ×1
laravel ×1
limit ×1
oauth ×1
objective-c ×1
pagination ×1
php ×1