だから私はなんとか1.ログインを機能させました。2. ログインしたユーザーのイベントを作成します。3. ユーザーのフレンド リストを表示し、ユーザーにフレンドを選択して ID を取得するように依頼します。
選択したユーザーの ID を追加のホストとして使用して fb イベントを更新したいと考えています。何日も試みたにもかかわらず、私は立ち往生しています。
助けてください。
ログインコード :
btn_login = (Button) findViewById(R.id.button1);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// start Facebook Login
Session.openActiveSession(MainActivity.this, true,
new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session,
SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
// callback after Graph API
// response with user
// object
@Override
public void onCompleted(
GraphUser user,
Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.tv1);
MangoTestApplication app = (MangoTestApplication) getApplication();
app.setUser(user);
// System.out
// .println(user);
welcome.setText("Hello "
+ user.getName()
+ "!");
}
}
});
}
}
});
イベント作成 :
Bundle params = new Bundle();
// params.putString("type", "event");
// params.putString("title", "Sample events.event");
// params.putString("description", "");
params.putString("name", "Test Event4");
params.putString("start_time", "2013-07-14");
Session.getActiveSession().requestNewPublishPermissions(
new Session.NewPermissionsRequest(MainActivity.this,
Arrays.asList(permissions)));
Request request = new Request(Session.getActiveSession(),
"me/events", params, HttpMethod.POST, new Callback() {
@Override
public void onCompleted(Response response) {
// System.out.println(response);
System.out.println(response);
event_id = response.getGraphObject()
.getProperty("id").toString();
try {
if (response.getConnection()
.getResponseCode() == 200)
Toast.makeText(MainActivity.this,
"Event Created",
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();
そして、ホストを追加するためのイベントの更新 (それは機能していません):
Bundle params = new Bundle();
params.putString("name", "Test Event5");
params.putString("host", fb friends id here));
params.putString("start_time", "2013-07-15");
Request request = new Request(Session.getActiveSession(),
event_id, params, HttpMethod.POST, new Callback() {
@Override
public void onCompleted(Response response) {
// System.out.println(response);
System.out.println(response);
try {
if (response.getConnection()
.getResponseCode() == 200)
Toast.makeText(MainActivity.this,
"Event Created",
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();
イベントの更新は、名前/日付の変更に対して機能することに注意してください。しかし、ホストを追加することはできません。助けてください!!!注:「ホスト」の代わりに、選択したフレンドIDを「作成者」としてバンドルに挿入しようとしましたが、うまくいきません。