private
static
final
List<String> PERMISSIONS = Arrays.asList(
"publish_actions"
);
private
boolean
pendingPublishReauthorization =
false
;
private
boolean
isSubsetOf(Collection<String> subset, Collection<String> superset) {
for
(String string : subset) {
if
(!superset.contains(string)) {
return
false
;
}
}
return
true
;
}
private
void
publishStory(
final
String msg) {
runOnUiThread(
new
Runnable() {
@Override
public
void
run() {
Session session = Session.getActiveSession();
if
(session !=
null
){
List<String> permissions = session.getPermissions();
if
(!isSubsetOf(PERMISSIONS, permissions)) {
pendingPublishReauthorization =
true
;
Session.NewPermissionsRequest newPermissionsRequest =
new
Session.NewPermissionsRequest(FlushFlush.
this
, PERMISSIONS);
session.requestNewPublishPermissions(newPermissionsRequest);
Log.i(
"Request Permission"
,
"cal permission"
);
return
;
}
Bundle postParams =
new
Bundle();
postParams.putString(
"name"
,
"Ninja Game Record"
);
postParams.putString(
"message"
, msg);
Request.Callback callback=
new
Request.Callback() {
public
void
onCompleted(Response response) {
Log.i(
"RESPONSE"
, response.toString());
FacebookRequestError error = response.getError();
if
(error !=
null
) {
Toast.makeText(act
.getApplicationContext(),
error.getErrorMessage(),
Toast.LENGTH_SHORT).show();
}
else
{
JSONObject graphResponse = response
.getGraphObject()
.getInnerJSONObject();
String postId =
null
;
try
{
postId = graphResponse.getString(
"id"
);
Toast.makeText(act
.getApplicationContext(),
postId,
Toast.LENGTH_LONG).show();
}
catch
(JSONException e) {
Log.i(
"TAG"
,
"JSON error "
+ e.getMessage());
}
}
}
};
Request request =
new
Request(session,
"me/feed"
, postParams,
HttpMethod.POST, callback);
request.executeAsync();
}
}
});
}