次のコードは、pageidを介してfacebookページのある場所にのみチェックインします。 (レストランのように)しかし、あなたはあまりにも場所IDでそれを行うことができると思う。
LoginManager.getInstance().logInWithPublishPermissions(
getActivity(), Arrays.asList("publish_actions"));
String PAGEID = FACEBOOK_LINK.substring(
FACEBOOK_LINK.lastIndexOf("/") + 1,
FACEBOOK_LINK.length());
new GraphRequest(AccessToken.getCurrentAccessToken(), "/"
+ PAGEID, null, HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
try {
if (response.getError() == null) {
JSONObject obj = response
.getJSONObject();
if (obj.has("id")) {
pageID = obj.getString("id");
/* make the API call */
Bundle params = new Bundle();
params.putString("message", "Eating");
params.putString("place", pageID);
params.putString("link","URL");
if (pageID == null) {
MessageBox
.Show(getActivity(),
"Failed to check in to this restaurant");
} else {
new GraphRequest(AccessToken
.getCurrentAccessToken(),
"/me/feed", params,
HttpMethod.POST,
new GraphRequest.Callback() {
public void onCompleted(
GraphResponse response) {
if (response.getError() == null) {
//success
} else {
MessageBox
.Show(getActivity(),
"Failed to check in to this restaurant");
}
}
}).executeAsync();
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
MessageBox.Show(getActivity(),
"Error: " + e.getMessage());
e.printStackTrace();
}
}
}
}).executeAsync();
私はこのコードがちょっと混乱していることは知っていますが、作業が完了しています。ここで私がやっている最初のことは、ユーザーにFacebookのパブリッシュの許可を求めることです。次に、私がチェックしているpageIDがグラフリクエストを通じて有効かどうかを確認します。有効な場合は、別のリクエストでユーザーの希望する場所にチェックインしています。
このコードは、既にFacebookにログインしていることを前提としていますか?私はこれを試し、あなたの投稿を続けます。 –
FACEBOOK_LINKとは何ですか? –
これは私がpageidを必要としたfacebookページのURLです。この[リンク](https://www.facebook.com/pizzaguydelivery)のように、場所の場所IDがあるかどうかを確認するために「pizzaguydelivery」部分が必要な場所 –