Why restfb library fails updating Facebook Page info?

21 views Asked by At

I need to be able to update (using any API in JAVA) the info of my Facebook Pages, such as address, opening time hours, email, tel etc., but, I have not been successful. I have tried restfb library and Facebook Graph API. The code in restfb I used is:

List<FacebookPage> fbPagesList=new ArrayList<>();

fbPagesList=readPagesInfo(); // suppose this function returns a list of needed info
    for(FacebookPage fbPage: fbPagesList) {
        updateFacebookPageInfo(fbPage);
    }

private static void updateFacebookPageInfo (FacebookPage fb) {

    String fullAddress  = fb.address2 != null && !fb.address2.isEmpty()
            ? fb.address1 + ", " + fb.address2
                    : fb.address1;
    

Hours hours=new Hours();
// timeSlotsExtrat  is a function that returns a  List<String> of opening hours
        hours.addHour(DayOfWeek.MON.toString() , timeSlotsExtrat (fb.monday).toString());
        hours.addHour(DayOfWeek.TUE.toString() , timeSlotsExtrat (fb.tuesday).toString());
        hours.addHour(DayOfWeek.WED.toString(), timeSlotsExtrat(fb.wednesday).toString());
        hours.addHour(DayOfWeek.THU.toString(), timeSlotsExtrat(fb.thurdsay).toString());
        hours.addHour(DayOfWeek.FRI.toString() , timeSlotsExtrat (fb.friday).toString());
        hours.addHour(DayOfWeek.SAT.toString() , timeSlotsExtrat (fb.saturday).toString());
        hours.addHour(DayOfWeek.SUN.toString() , timeSlotsExtrat (fb.sunday).toString());


        Location location = new Location();  
        location.setCityId(fb.city_id); 
        location.setStreet(fullAddress);
        location.setZip(fb.zipCode);
        location.setLongitude(Double.parseDouble(fb.longitudine));
        location.setLatitude(Double.parseDouble(fb.latitudine));

        List<String> emails =new ArrayList<>();
        if(fb.email !=null && !fb.email.isEmpty()) {
            emails.add(fb.email);
        }
        try {
 
            DefaultFacebookClient fbClient = new DefaultFacebookClient(fb.page_access_token, Version.LATEST);
            GraphResponse response = fbClient.publish(fb.page_id, GraphResponse.class,
                    Parameter.with("location", location),
                    Parameter.with("phone", fb.tel),
                    Parameter.with("hours", hours),
                    Parameter.with("website", fb.website),
                    Parameter.with("emails", emails));
            System.out.println("Response: " + response.isSuccess());

        } catch (FacebookOAuthException e) {
            // OAuth-related exceptions (e.g., permissions or token issues)
            System.err.println("1_ OAuth error: " + e.getErrorMessage());
        } catch (FacebookGraphException e) {
            // Errors from the Facebook Graph API itself
            System.err.println("2_ Graph API error: " + e.getErrorMessage());
        } catch (FacebookResponseStatusException e) {
            // Errors related to the execution of the API call
            System.err.println("3_ Response error: " + e.getErrorMessage());
        } catch (Exception e) {
            // Other errors
            System.err.println("4_ Update failed: " + e.getMessage());
        }

    }
    

Interestingly I receive no errors and response.isSuccess() prints true, however I see no changes on my Facebook page except for the website!!!!

enter image description here

the second method I have tried is explained here.

_ I have even tried to report a bug for Facebook but as you see in the photo below it is not possible anymore Report a Bug

0

There are 0 answers