1

В настоящее время я использую Android Android SDK 3.19.1, чтобы опубликовать Open Graph Story на временной шкале нашего пользователя.Явно не работает для пост - Facebook Android SDK Open Graph Story

История добавлена ​​в журнал активности пользователя, но не отображается на их временной шкале.

У меня есть собственное действие и объект для моей истории, и я установил параметр «Явно разделяемый» для своего действия и соответствующих свойств в коде. Я также представил и был одобрен для разрешения «publish_actions».

Я что-то упустил?

private void postGraph(final Bundle b, final Request.Callback callback) { 
    // Set up the request callback to handle errors 
    Request.Callback errorCallback = new Request.Callback() { 

     @Override 
     public void onCompleted(Response response) { 
      // Log any response error 
      FacebookRequestError error = response.getError(); 
      if (error != null) { 
       callback.onCompleted(response); 
       Log.i("PostGraph", error.getErrorMessage()); 
      } 
     } 
    }; 

    // Create a batch request 
    RequestBatch requestBatch = new RequestBatch(); 

    // Request: Staging image upload request 
    // -------------------------------------------- 

    boolean hasImage = b.containsKey(BUNDLE_PICTURE); 
    // If uploading an image, set up the first batch request 
    // to do this. 
    if (hasImage) { 
     // Set up image upload request parameters 
     Bitmap image = BitmapFactory.decodeFile(b.getString(BUNDLE_PICTURE)); 

     // Create the request for the image upload 
     Request imageRequest = Request 
       .newUploadStagingResourceWithImageRequest(Session.getActiveSession(), 
         image, errorCallback); 

     // Set the batch name so you can refer to the result 
     // in the follow-on object creation request 
     imageRequest.setBatchEntryName("imageUpload"); 

     // Add the request to the batch 
     requestBatch.add(imageRequest); 
    } 

    // Request: Object request 
    // -------------------------------------------- 

    // Set up the OpenGraphObject representing the book. 
    OpenGraphObject obj = OpenGraphObject.Factory.createForPost(mGraphObjectName); 
    if (hasImage) { 
     obj.setImageUrls(Arrays.asList("{result=imageUpload:$.uri}")); 
    } 
    if (b.containsKey(BUNDLE_NAME)) { 
     obj.setTitle(b.getString(BUNDLE_NAME)); 
    } 
    if (b.containsKey(BUNDLE_LINK)) { 
     obj.setUrl(b.getString(BUNDLE_LINK)); 
    } 
    if (b.containsKey(BUNDLE_MESSAGE)) { 
     String message = b.getString(BUNDLE_MESSAGE); 
     if (!TextUtils.isEmpty(message)) { 
      obj.setDescription(b.getString(BUNDLE_MESSAGE)); 
      obj.setProperty("message", b.getString(BUNDLE_MESSAGE)); 
     } 
    } 

    // Create the request for object creation 
    Request objectRequest = Request.newPostOpenGraphObjectRequest(Session.getActiveSession(), 
      obj, errorCallback); 

    // Set the batch name so you can refer to the result 
    // in the follow-on publish action request 
    objectRequest.setBatchEntryName("objectCreate"); 

    // Add the request to the batch 
    requestBatch.add(objectRequest); 

    // Request: Publish action request 
    // -------------------------------------------- 
    OpenGraphAction postAction = OpenGraphAction.Factory.createForPost(mGraphActionName); 
    // Refer to the "id" in the result from the previous batch request 
    postAction.setProperty("object", "{result=objectCreate:$.id}"); 
    postAction.setExplicitlyShared(true); 
    postAction.setProperty("explicitly_shared", "true"); 

    // Create the publish action request 
    Request actionRequest = Request.newPostOpenGraphActionRequest(Session.getActiveSession(), 
      postAction, callback); 

    // Add the request to the batch 
    requestBatch.add(actionRequest); 

    // Execute the batch request 
    requestBatch.executeAsync(); 
} 

ответ

1

Я связался с группой поддержки Facebook и получил следующий ответ:

Это By Design. Явно ссылается на то, что пользователь принял решение поделиться историей. Доля гарантированно будет отображаться в новостной ленте пользователя, но не на их временной шкале.

Как вы упомянули, оно отображается в журнале активности, и затем они могут выбрать раскрывающийся список для определенной истории, изменив выбранную опцию с «Разрешено на временной шкале» на «Показывать на временной шкале».

Итак, моя проблема, по-видимому, не проблема. :)

Но, я все равно считаю функциональность немного запутанной. Я бы подумал, что сообщение «Явно разделяемое» будет отображаться на временной шкале пользователя, и при этом было бы указано выше, если опция «Явно разделяемая» не была проверена. Думаю, моя проблема была просто семантикой.

Смежные вопросы