Troubleshooting

Nothing showing to configure module, plus block not showing when set.

Question by Allthegearnoidea:
I have installed the Service Links module and enabled the relevant parts, but there seems to be no way to configure the module. If I click the configure link it directs me to admin/config/services whereby there is no option to configure service links just options for RSS Publishing and Feed Aggregator.
Answer by serhiyvk:
Now my problem is resolved, the settings did appear. What i did: I requested PHP memory limit to be increased to 256MB at my HostGator shared account.

Facebook Like and Facebook Disconnect Chrome Extension conflict

Question and Answer by solutiondrop:
Just a word of advice if your Facebook Like widget doesn't show up in Chrome and you use the Facebook Disconnect Chrome extension, be sure to remove or disable that extension. It kind of drove me crazy for a few moments until I realized that extension will cause that widget to not load properly. This is the extension I'm talking about: https://chrome.google.com/webstore/detail/ejpepffjfmamnambagiibghpglaidiec

Node title not showing up in Facebook

Question by mitchkostelecky:
Twitter, Google+, and Pinterest are all including the node title when I use those services. It seems that Facebook is the only service that isn't including the title when I "Like" a page.
Answer by Marc DeLay:
This is not a code problem with this module. This is a Facebook specific issue. You probably need to add Facebook meta tags to your page for Facebook to be able to get the title and other information.
Answer by Simon Georges:
Link that can serve as reference in the documentation: http://opengraphprotocol.org/.

Confirmation request by Facebook Like button

Question by SamuelChris:
When I install the widget service "Facebook Like Button" and I test it, but the key was asking me to confirm the action. How to make Facebook Like button does not ask for confirmation when clicked like?
Answered by Stephen Doyle at Facebook Developers page:
This is a standard spam prevention measure applied automatically to all domains and isn't specifically related to your app(s) or users, it will automatically stop once the activity on the domain returns to normal (i.e users liking and confirming pages and not removing the like or reporting it as spam) - there is no way to specifically override this protection, apologies if this causes problems for your use-case.

Shorten URL Not Working

Question by Lloyd:
I have Shorten URL module enabled and configured to use bit.ly as the primary shortener. I have confirmed that the module has in fact created a shortened URL for the page in question. But when a service link is clicked, no URL (long or short) is being displayed. If I turn off Always use short links, the full URL is output. If I turn How generate short links to use node/xxx alias, that works as well. It only does NOT work when Use Short URL service is selected. If I disable Shorten URL, it works using the default tinyurl link.
Answer by gittosj:
It is working but takes some juggling. Steps to fix / enable it are:
  1. Make sure shorten itself is properly installed and configured by testing at [www.yoursite.com]/shorten http://bestshopsoft.com/adobe-cc-2015-master-collection-mac/. This took me some time and fettling with settings at [www.yoursite.com]/admin/config/services/shorten;
  2. Clear your cache and enable the settings at [www.yoursite.com]/admin/config/services/service-links;
  3. It works!.
Answer by BeaPower:
works for me after clearing cache and enabling http:// and not www.
Answer by TheCrow:
Tested it with www. option on/off and with localhost/external url, seems that bit.ly doesn't work only for local or not reachable addresses, that's why it switch to tinyurl (my second choice on shorten urls module)

Apply a style to the widgets

Widgets have a different behaviour and their javascript code assigns several attributes and style values to the button itself, to apply some modify is important to find the right CSS selector they use after the button has been rendered. It is important to have a minimal knowledge about a tool called HTML Inspector, avaialable on all major browsers, it can be activated through the Q key on Firefox, or the F12 key on Chrome, pointing the mouse on the button we can get the info we need. It is important to get the id name or class name of the most top div including the widget, this will be our CSS selector. Through the Inspector we can navigate the list of styles already applied to the widget, trying to change their values or add new ones, and finally we can apply the modifies in one of the CSS file loaded by our theme. When this procedure doesn't give the expected results is because the javascript code applied to the button the same CSS style we are applying by our file, and the javascript has the precedence! To avoid that just make follow your CSS rule by the keyword !important.
.fb_iframe_widget {
  vertical-align: bottom;
  margin-bottom: 5px;
}
.service-links-facebook-like {
  margin-left: 10px;
}

/* To be more precise can limit the selector to the iframe */
iframe.service-links-facebook-like {
  margin-right: 50px;
}
/* Google+ assigns a sequential id like the one below*/
#___plusone_0 {
  margin-left: 10px;
  width: 50px !important;
  border: 1px solid red !important;
}
/* Pin it assigns a class with a numeric code to be evaluated with the HTML Inspector */
.PIN_xxx_pinit_button {
  margin-left: 10px;
  width: 50px !important;
  border: 1px solid red !important;
}
.twitter-share-button {
  margin-left: 10px;
  width: 14px !important;
}

Disable Service Links on non public Organic Group pages

Question by ajayg:
if a node access module is enabled (e.g Organic Groups) several nodes are not accessible to public. Please disable showing service links on private OG pages.
Answer by gemalm:
I did the following and it works. In the option "Show Service Links on specific pages", I have selected the option "show if the following PHP code returns TRUE" and I add the following code:
$args = arg();
if($args[0] == 'node' && is_numeric($args[1])) {
  $n = node_load($args[1]);
  if (property_exists($n, 'og_public')) {
    return $n->og_public; 
  }
  else {
    return true;
  }
}
return false;