Получить идентификатор запроса игры / доступ к содержимому уведомления Facebook о запросе игры

#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
})