Skip to main content

Adding A JavaScript Controlled Google Plus Interactive Post Button

While learning all about adding a Google+ sign-in button, I noticed a new Google+ sevice, the interactive post.  An interactive post is the same as a normal Google+ post with the addition of a button that performs some 'action' on the target web site.  For an example Google+ interactive post, look here[4].  The Copasetic Flow web sites don't lend themselves to most social networking APIs, there's nothing to buy here yet, and there's no music or movies, but it occurred to me that there is somethinng to watch, the APRS tours[1].  Finally, I have an excuse to play with a social networking API!

The mechanisms for using Google+ interactive posts are fairly well described by Google on their docuementation page[2], so I won't walk you back through that.  Where I ran into a few simple problems, (two to be exact), was with trying to influence the post contents using JavaScript.

First, when trying to write to a button on the fly[3] using gapi.interactivepost.render(), I was under the impression that I could just add a naked div something like the following to my page and the render code would take care of the rest.


<div id="actbutton">
</div>

I was wrong.  In fact, what you need is a span or div that contains the class information for the interactive post button, (it makes perfect sense upon reflection).  Use something like this

<button id="actbutton" disabled="disabled" 
  class="g-interactivepost"
  data-contenturl="http://copaseticflows.appspot.com/aprsdotfly"
  data-contentdeeplinkid="/aprsdotfly"
  data-clientid="xxxxxx.apps.googleusercontent.com"
  data-cookiepolicy="single_host_origin"
  data-prefilltext="Engage your users today, create a Google+ page for your business."
  data-calltoactionlabel="WATCH"
  data-calltoactionurl="http://copaseticflows.appspot.com/aprsdotfly"
  data-calltoactiondeeplinkid="/aprsdotfly">
  Share APRS Tour on G+
</button>    

The only other issue I ran into had to do with the inclusion of the requestvisibleactions field in the options passed to the JavaScript render call.  When I was working on this the field was not included in Google's example code.  It turns out that the field is required and Google's code will barf without it.  So, change Google's example code to look more like:

      var options = {
          contenturl: 'http://copaseticflows.appspot.com/aprsdotfly',
          contentdeeplinkid: '',
          clientid: 'xxxxxx.apps.googleusercontent.com',
          cookiepolicy: 'single_host_origin',
          prefilltext: sh_title,
          calltoactionlabel: 'WATCH',
          calltoactionurl: tour_link,
          calltoactiondeeplinkid: '',
          requestvisibleactions: 'http://schemas.google.com/AddActivity'
      };
      // Call the render method when appropriate within your app to display
      // the button.
      gapi.interactivepost.render('actbutton', options);

AddActivity is the default value for the requestvisibleactions field, but it still has to be specified, or you'll get a  'request_visible_actions=undefined' error.

References 

1.  http://copaseticflows.appspot.com/aprsdotfly?tour=ahRzfmNvcGFzZXRpY2Zsb3dzLWhyZHISCxIJQVBSU1RyYWNrGJmzxAMM

2.  https://developers.google.com/+/web/share/interactive?invite=true

3.  https://developers.google.com/+/web/share/interactive?invite=true#rendering_the_button_with_javascript

4.  https://plus.google.com/u/0/108242372478733707643/posts/Hzb7hM8pMPK

Comments

Popular posts from this blog

Cool Math Tricks: Deriving the Divergence, (Del or Nabla) into New (Cylindrical) Coordinate Systems

The following is a pretty lengthy procedure, but converting the divergence, (nabla, del) operator between coordinate systems comes up pretty often. While there are tables for converting between common coordinate systems, there seem to be fewer explanations of the procedure for deriving the conversion, so here goes!

What do we actually want?

To convert the Cartesian nabla



to the nabla for another coordinate system, say… cylindrical coordinates.



What we’ll need:

1. The Cartesian Nabla:



2. A set of equations relating the Cartesian coordinates to cylindrical coordinates:



3. A set of equations relating the Cartesian basis vectors to the basis vectors of the new coordinate system:



How to do it:

Use the chain rule for differentiation to convert the derivatives with respect to the Cartesian variables to derivatives with respect to the cylindrical variables.

The chain rule can be used to convert a differential operator in terms of one variable into a series of differential operators in terms of othe…

Lab Book 2014_07_10 More NaI Characterization

Summary: Much more plunking around with the NaI detector and sources today.  A Pb shield was built to eliminate cosmic ray muons as well as potassium 40 radiation from the concreted building.  The spectra are much cleaner, but still don't have the count rates or distinctive peaks that are expected.
New to the experiment?  Scroll to the bottom to see background and get caught up.
Lab Book Threshold for the QVT is currently set at -1.49 volts.  Remember to divide this by 100 to get the actual threshold voltage. A new spectrum recording the lines of all three sources, Cs 137, Co 60, and Sr 90, was started at approximately 10:55. Took data for about an hour.
Started the Cs 137 only spectrum at about 11:55 AM

Here’s the no-source background from yesterday
In comparison, here’s the 3 source spectrum from this morning.

The three source spectrum shows peak structure not exhibited by the background alone. I forgot to take scope pictures of the Cs137 run. I do however, have the printout, and…

Unschooling Math Jams: Squaring Numbers in their own Base

Some of the most fun I have working on math with seven year-old No. 1 is discovering new things about math myself.  Last week, we discovered that square of any number in its own base is 100!  Pretty cool!  As usual we figured it out by talking rather than by writing things down, and as usual it was sheer happenstance that we figured it out at all.  Here’s how it went.

I've really been looking forward to working through multiplication ala binary numbers with seven year-old No. 1.  She kind of beat me to the punch though: in the last few weeks she's been learning her multiplication tables in base 10 on her own.  This became apparent when five year-old No. 2 decided he wanted to do some 'schoolwork' a few days back.

"I can sing that song... about the letters? all by myself now!"  2 meant the alphabet song.  His attitude towards academics is the ultimate in not retaining unnecessary facts, not even the name of the song :)

After 2 had worked his way through the so…