gpt4 book ai didi

android - 如果应用程序未安装,用户是否会收到 Facebook 请求数据?

转载 作者:行者123 更新时间:2023-11-29 01:47:41 24 4
gpt4 key购买 nike

我目前正在我的应用程序中开发一项功能,允许用户邀请他们的 Facebook 好友,为此他们和好友将收到奖励/礼物。

为此,我使用了 Facebook 请求选项。所以我查看了以下 2 个文档:

https://developers.facebook.com/docs/android/send-requests/

https://developers.facebook.com/docs/android/app-link-requests/

现在如果两台设备都安装了应用程序并且我从一台设备向另一台设备发送请求并且可以检索发件人使用此方法发送的其他数据,这将非常有效:

    private void getRequestData(final String inRequestId) {
// Create a new request for an HTTP GET with the
// request ID as the Graph path.
Request request = new Request(Session.getActiveSession(),
inRequestId, null, HttpMethod.GET, new Request.Callback() {

@Override
public void onCompleted(Response response) {
// Process the returned response
GraphObject graphObject = response.getGraphObject();
FacebookRequestError error = response.getError();
// Default message
String message = "Incoming request";
if (graphObject != null)
{
CupsLog.d(TAG, "getRequestData -> graphObject != null: "+ graphObject.toString());
// Check if there is extra data
if (graphObject.getProperty("data") != null)
{
CupsLog.d(TAG, "getRequestData -> graphObject.getProperty(data) != null");
try
{
// Get the data, parse info to get the key/value info
JSONObject dataObject = new JSONObject((String)graphObject.getProperty("data"));
// Get the value for the key - badge_of_awesomeness
String reward = dataObject.getString("reward");
// Get the value for the key - social_karma
String coffeeCups = dataObject.getString("coffee_cups");
// Get the sender's name
JSONObject fromObject = (JSONObject) graphObject.getProperty("from");
String sender = fromObject.getString("name");
String title = sender+" sent you a gift";
// Create the text for the alert based on the sender
// and the data
message = title + "\n\n" +
"reward: " + reward +
" coffeeCups: " + coffeeCups;
} catch (JSONException e) {
message = "Error getting request info";
}
} else if (error != null) {
message = "Error getting request info";
}
else
{
CupsLog.d(TAG, "getRequestData -> graphObject.getProperty(data) == null");
}
}
Toast.makeText(SocialFeaturesActivity.this, message, Toast.LENGTH_LONG).show();
}
});
// Execute the request asynchronously.
Request.executeBatchAsync(request);
}

问题:如果接收者将在 Facebook 中收到此请求,但不会安装它,则此请求会将他重定向到 Google Play 以安装该应用程序。在他安装应用程序并首次打开后?有办法接收这些数据吗?

最佳答案

Facebook 建议接收方应在每次打开应用程序时检查是否有待处理的请求(使用onResume)。您可以使用 /{user-id}/apprequests 端点来检查它,如下所示:

https://developers.facebook.com/docs/graph-api/reference/user/apprequests/

根据其文档,GET 将返回一组请求对象。

The requests received by this person from the app making the API call

获得请求 ID 后,您可以使用 /{request-id} 收集其他信息

https://developers.facebook.com/docs/graph-api/reference/request/

处理请求后,将其删除以避免重复。

因为 在您明确删除请求之前,Facebook 不会删除请求,因此您不需要服务器端代码来进行此交互。

关于android - 如果应用程序未安装,用户是否会收到 Facebook 请求数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com