#ios #facebook #request #swift3 #facebook-ios-sdk
#iOS #Facebook #запрос #swift3 #facebook-ios-sdk
Вопрос:
Я пытаюсь отправлять запросы с данными друзьям Facebook в моем приложении. Запросы успешно отправлены, и я действительно получаю уведомления. Однако сообщение в уведомлениях не соответствует тому, что я указываю (уведомление, которое я получаю, означает, что xxxxx отправил вам запрос. Я указал, пожалуйста, помогите мне с 5 жизнями). Кроме того, я не могу получить доступ к каким-либо данным полученного запроса.
Вот как я отправляю запрос:
func sendLifeRequest(index: Int) {
let content = FBSDKGameRequestContent()
content.message = "Please help me with 5 lives"
content.data = "5lives"
let id = facebookFriends[index].id as NSString
var to: [NSString] = [NSString]()
to.append(id)
content.recipients = to
FBSDKGameRequestDialog.show(with: content, delegate: self)
}
Вот как я пытаюсь получить это на другом конце:
FBSDKGraphRequest(graphPath: "https://graph.facebook.com/me/apprequests?access_token=" FBSDKAccessToken.current().tokenString, parameters: nil).start(completionHandler: { (connection, user, requestError) -> Void in
print(requestError) // prints nil
print(user)
})
печать (пользовательская) печатает:
Optional({
id = "https://graph.facebook.com/me/apprequests";
"og_object" = {
id = xxxxxxxxxxxxx;
type = website;
"updated_time" = "2016-10-19T05:32:20 0000";
};
share = {
"comment_count" = 0;
"share_count" = 0;
};
Обновление: Я обнаружил, что если я скопирую идентификатор запроса и скопирую его для графического пути, это сработает. Кто-нибудь знает, как получить этот идентификатор со стороны получателей
func gameRequestDialog(_ gameRequestDialog: FBSDKGameRequestDialog!, didCompleteWithResults results: [AnyHashable : Any]!) {
print("request sent")
print(results) // copied ID from here
}
и вставлено…
FBSDKGraphRequest(graphPath: THE ID HERE, parameters: nil).start(completionHandler: { (connection, user, requestError) -> Void in
print(requestError) // prints nil
print(user)
})
теперь печатайте пользовательские отпечатки:
Optional({
application = {
category = Games;
id = xxxxxxxxxxxx;
link = "https://www.facebook.com/games/?app_id=1841299476156545";
name = "Crazy Traffic Saga";
};
"created_time" = "2016-10-24T21:25:34 0000";
data = 5lives;
from = {
id = xxxxxxxxxxxx;
name = "xxxxxxxxxxxxxx";
};
id = xxxxxxxxxxxx;
message = "Please help me with 5 lives";
})
Проблема в том, что при входе в систему я скопировал отправляющего пользователя и скопировал получающему пользователю. Я все еще не могу получить к нему доступ только с помощью кода от получателя.
Документация Facebook по игровому запросу гласит:
«Чтобы прочитать все запросы для получателя, вы можете запросить график, как показано ниже, используя ПОЛЬЗОВАТЕЛЬСКИЙ ТОКЕН ДОСТУПА получателя. Это вернет список идентификаторов запросов для этого пользователя в приложении.
ПОЛУЧИТЬ https://graph.facebook.com/me/apprequests ?access_token = [ПОЛЬЗОВАТЕЛЬСКИЙ ТОКЕН ДОСТУПА]»
Но это то, что я делал сначала…
Комментарии:
1. Сообщение не отображается в окне уведомлений, оно отображается только в app center.
2. Ооо, спасибо. Вы знаете, как я могу получить доступ к данным со стороны получателя? @CBroe
Ответ №1:
Я нашел это. запрос должен быть «/ me / apprequests»
итак:
FBSDKGraphRequest(graphPath: "/me/apprequests", parameters: nil).start(completionHandler: { (connection, user, requestError) -> Void in
})