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){
// Check for publish permissions
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();
}
}
});
}
안녕하세요.
현재 페이스북 연동 앱을 개발 중입니다.
publish_actions로 권한을 받아오고 me/feed를 통해 담벼락에 게임 기록을 게시하는 앱인데, 페이스북 개발자로 등록된 계정 A로 앱에 로그인해서 게시하면 잘 됩니다.
그런데 동일 앱에서 일반 페이스북 계정인 B로 로그인해서 시도하면 게시가 되지 않습니다.
디버깅을 해 보니 publish_actions 요청하는 부분에서 이 권한을 확보해오지 못하더군요..
위 소스의 requestNewPublishPermission 부분에서 계속 걸립니다.
A계정으로는 잘 되니 코드는 맞지 않을까 싶은데 해결 방법을 알 수 없어 고생중입니다. 도움을 부탁드립니다.
읽어주셔서 감사합니다.