ラベル facebook の投稿を表示しています。 すべての投稿を表示
ラベル facebook の投稿を表示しています。 すべての投稿を表示

2017/04/14

[Facebook]graph protocolで最適な画像のサイズ

Facebookのニュースフィードで流れてくる画像の最適なサイズっていくつなんだろーってぐぐっていたら

Facebookシェアに最適な画像サイズとOGP設定【2016年版】
というのを発見して、どうやら縦630px×横1200pxが最適みたい。

2016/01/29

[Parse]Parseがサービス終了

なんと、朝一から衝撃的なニュースが。

We have a difficult announcement to make. Beginning today we're winding down the Parse service, and Parse will be fully retired after a year-long period ending on January 28, 2017. We're proud that we've been able to help so many of you build great mobile apps, but we need to focus our resources elsewhere.

via:Moving On
本腰を入れて勉強していた矢先である。

ショックすぎて何もいえない。

google app engineにしようかなー。
dbも。like検索がしたくて、これ使おうと思ってたんだけど。

2016/01/28

[Parse]データをエクスポート

どうやらParseでは保存されたデータをjson形式でエクスポートできるようだ。

ただし、注意しなくてはいけないのは、ダウンロードではなく、メールでリンクが記載されており、そこをクリックしないといけないのが仕様的にわかりにくい。

2016/01/20

[Parse]User Classにデータを登録

ParseのDocsのUserセクションを読みながらユーザー登録の方法を調査した。

import json,httplib
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('POST', '/1/users', json.dumps({
       "username": "cooldude6",
       "password": "p_n7!-e8",
       "phone": "415-392-0202"
     }), {
       "X-Parse-Application-Id": "...",
       "X-Parse-REST-API-Key": "...",
       "X-Parse-Revocable-Session": "1",
       "Content-Type": "application/json"
     })
result = json.loads(connection.getresponse().read())
print result
このスニペットで動くんだけど、パスワードが未入力でも登録できちゃうのがなー。

2016/01/19

[Parse]Parseで開発環境と本番環境の切り替え

Parseで本番環境と開発環境を切り替えることはできないのだろうか?

It’s a very common use-case to have apps built on Parse that are both still in development and already in production. To help you make a clear distinction between Development Apps and Production Apps, we’re adding a switch in your app’s settings that lets you mark an app as a Production App. This will not only allow you to visually differentiate between your production apps and those still in development mode, but will in the future allow us to add security features that prevent you from accidentally editing content that is in production, or sending test push notifications to actual users (“Whoops!”).

We’re pretty excited about this, and hope you’ll find it useful!

via:Production vs Development Apps
ってなわけで、データの区分けは厳しいかもしれない。

確かに、devとProductionの切り替えはできるんだけど。

2015/06/21

[iOS][Objective-C][Facebook]Facebook SDKのIDFAについて

iOSアプリを審査に提出する時に、IDFAについての確認を求められるのだが、facebook sdkを使った場合、どうすればいいのかわからなかったんだけど、
Does Facebook’s SDK for iOS access the IDFA?
というところに答えがありました。

The Facebook SDK includes code to access Apple’s Advertising Identifier (IDFA), but that code is only executed in certain situations.
The Facebook SDK for iOS only accesses IDFAs in the following scenarios: 1) if your app serves ads within the app through Facebook’s Audience Network, or 2) if your app logs app installs or other mobile App Events in order to attribute those events to your ad campaigns.
If you are not logging App Events (via the FBSDKAppEvents class), then the Facebook SDK is not accessing the IDFAs. Additionally, the Facebook SDK does not require AdSupport.framework to be included.
If you want to track App Events without collecting IDFA, you can disable IDFA collection within your app dashboard in the advanced setting section.

via:Does Facebook’s SDK for iOS access the IDFA?
ずばり、AppEventsを使わない場合は、IDFAを使っていないのかなと。

2014/11/19

[iOS][Objective-C]Google plus SDKとFacebook SDKを共存させる

Google plus SDKもFacebook SDKもともにログインする時に下記のメソッドにお世話になります。

- (BOOL)application: (UIApplication *)application openURL: (NSURL *)url sourceApplication: (NSString *)sourceApplication annotation: (id)annotation
Googleの場合
- (BOOL)application: (UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {
 return [GPPURLHandler handleURL:url
               sourceApplication:sourceApplication
                      annotation:annotation];
}
Facebookの場合
- (BOOL)application:(UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {

        BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
        return wasHandled;
}
でもろどかぶりしているので、どうすればいいのかなーっと検索していたら、Handling openURL: with Facebook and Googleというエントリーを発見して、下記のようにすれば問題なく解決することができました。
- (BOOL)application:(UIApplication *)application
            openURL: (NSURL *)url
  sourceApplication: (NSString *)sourceApplication
         annotation: (id)annotation {
    if ([[url absoluteString] rangeOfString:@""].location == NSNotFound){
        BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
        return wasHandled;
    }else{
        return [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];
    }
}

2014/10/25

[facebook][objective-c]GraphAPI経由で写真をアップロード

前回、クラスメソッドを使ってobjective-cからfacebookに写真を共有する方法を書きました。

で、この方法では、メッセージを付与することができません。

メッセージをつきで写真を共有するには、以下のように組む必要があります。

UIImage *image;
NSString *message;
FBRequest *fBRequest = [FBRequest alloc] requestWithGraphPath:@"me/photos"
                                         parameters:@{"picture":image,@"message":message}
                                         HTTPMethod:@"POST"];
[fBRequest startWithCompletionHandler:^(FBRequestConnection *connection,id result,NSError *error){
  if(!error){
    NSLog(@"OK");
  }
}];
ポイントは、GraphAPIのphotosにも記載されていないpictureというパラメータに実際のイメージを設定するということ。

試したらうまくいったので、今度からこれを使うぞと。

2014/10/08

[Facebook]GraphAPIのlocaleでja_KSを返す件

今日、Facebookで関西弁が登録できるようになったのだが、GraphAPIでlocaleを取得する際に、

{"locale":"ja_KS"}
とKSを返すようになったので、注意したい。

2014/09/10

[Facebook][JavaScript]Like数を取得する

Graph APIを使っていいねの数を取得することはできるのだろうか?

答えはできるみたい。
Get FB likes count for specific URL and page
よると

https://graph.facebook.com/?ids=http://www.your-website.com/the-url-or-so
というようにURLをたたけばでるようなのだが、

URL /?id={url}を読むと下のように組んでもよさそうだ。
FB.api(
    "/?id=http%3A%2F%2Fwww.imdb.com%2Ftitle%2Ftt2015381%2F",
    function (response) {
      if (response && !response.error) {
        response.shares
      }
    }
);

2014/06/22

[iOS][Objective-C]SLRequestについて

ちょっと前にTWRequestクラスを使ってtwitterのAPIにアクセスする方法を書きました。

そこで、今回は、iOS6で新設されたSocial.frameworkを使って問い合わせを行う方法について書きたいと思います。

ACAccount *acAccount;
SLRequest *sLRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:[NSURL URLWithString:@""] parameters:@{}];
[sLRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error){

}];
上の例では、Twitterの問い合わせですが、SLServiceTypeTwitterをSLServiceTypeFacebookに変更すればFacebookに問い合わせることができます。

2014/06/12

[iOS][Facebook]graph api ver2を使った友達招待をする方法

「前回、graph api ver2のuser_friendsパラメータについて」で、user_friendsパーミッション経由で、ゲーム以外のアプリで友達招待をすることができなくなったと書いたが、それに100%変わるわけではないが、代々案を思いついたので、紹介。

ずばり、FacebookのMessengerアプリで招待する方法である。

以下は、そのコード

FBLinkShareParams *fBLinkShareParams = [[FBLinkShareParams alloc] initWithLink:link name:name caption:caption description:description picture:picture];
if([FBDialogs canPresentMessageDialogWithParams:fBLinkShareParams]){
  [FBDialogs presentMessageDialogWithParams:fBLinkShareParams
             clientState:nil
             handler:^(FBAppCall *call,NSDictionary *results,NSError *error){
  }];

//なんらかの理由で表示できない場合
}else{
  UIAlert *alert;
}
上のコードを実行すれば、Facebook Messangerアプリを立ち上げて任意のリンク先を共有することができた。

ただ、デメリットは、Facebook Messangerアプリがないと招待できないことかな。
後、上のコードは、アクセストークン必要ないので、ログイン処理をはさまなくていいところがベスト。

2014/06/08

[Facebook SDK][iOS][Objective-C]写真の共有

最新版のFacebook SDK for iOSを使って、今、導入方法の勉強をしているのだが、どうやら、認証を行わなくても、写真を共有する方法がありそうだ。

if([FBDialogs canPresentShareDialogWithPhotos]){
  UIImage *image1;
  UIImage *image2;
  [FBDialogs presentShareDialogWithPhotos:@[image1,image2] handler:(^FBDialogAppCallCompletionHandler)(FBAppCall *call,NSDictionary *results,NSError *error){
  }];
}
たったのこれだけ実装できちゃうので、めちゃくちゃ便利。

2014/06/06

[iOS][Facebook]graph api ver2のuser_friendsパラメータについて

今、Love NailのFacebook SDKを最新バージョンにしようとしているのだが、今回、graph apiがバージョン2になったことによって、user_friendsパラメータに大幅な変更が加えられたようだ。

バージョン1では、ログインユーザーの友達情報(名前やid)を取得することができたんだけど、Facebook Platform Upgrade Guideを読んでみるとuser_friendsパーミッションで取得した友達は、同じアプリを使っている人に限定されてしまうようだ。

で、これ以外にも、

taggable_friends

invitable_friends
というパーミッション及びgraph apiがあるのだが、invitable_friendsは、どうやら、登録されているアプリのジャンルがゲームじゃないといけないようだ。

ここは、別に審査制にして、他のジャンルのアプリもリクエスト飛ばせるようにしたほうがいいと思うんだけどな。

2014/04/22

[Facebook][iOS][Objective-C]FBRequestConnectionのクラスメソッドでかえってきた値をnil化する方法について

Objective-Cを使って、facebookの情報を問い合わせるときがあります。

例:写真情報の取得

//albumのid
NSString *albumid;
[FBRequestConnection
    startWithGraphPath:[NSString stringWithFormat:@"/%@/photos",albumid],
    completionHandler:^(FBRequestConnection *connection,id result,NSError *error){
    NSLog(@"%@",result);
}];
例:アルバム情報の取得
[FBRequestConnection
    startWithGraphPath:@"/me/albums"
    completionHandler:^(FBRequestConnection *connection,id result,NSError *error){
    NSLog(@"%@",result);
}];
れ、これらのプログラムですが、問い合わせ中は、再度、上記のプログラムを実行してほしくないときがあります。

そんなときは、下のように、すればいいのかなと。
FBRequestConnection *fBRequestConnection;
if(fBRequestConnection == nil){
  fBRequestConnection = [FBRequestConnection
    startWithGraphPath:@"/me/albums"
    completionHandler:^(FBRequestConnection *connection,id result,NSError *error){
      NSLog(@"%@",result);
      fBRequestConnection = nil;
  }];
}
FBRequestConnectionのclass methodのセクションを読むと、返り値がFBRequestConnectionだったりするので、それを一度、設定して、nilじゃーないときは、問い合わせをしないようにしています。

iOS6のARCではうまくいきましたが、リファレンスカウンタ方式だとうまくいくかわからないっす。

2014/04/17

[Facebook]GraphAPIのErrorについて

昨日は、ページングについて書いたので、今日は、エラーについて。

同じようにリファレンスを読むと下のような構成になるようだ。

{
       "error": {
         "message": "Message describing the error", 
         "type": "OAuthException", 
         "code": 190 ,
         "error_subcode": 460
       }
     }
errorキーがトップにあるので、こいつが存在するかどうか調べればいいというわけだ。

これも毎回、毎回、調べるのがメンドイので、まとめました。

2014/04/16

[Facebook]GraphAPIのページングについて

Graph APIを使っていると次のデータを取りにいきたい場合があります。

で、Graph APIを読むと以下のような構成になっています。

{
  "data": [
     ... Endpoint data is here
  ],
  "paging": {
    "cursors": {
      "after": "hoge",
      "before": "bar"
    },
    "previous": "https://graph.facebook.com/me/albums?limit=25&before=hoge"
    "next": "https://graph.facebook.com/me/albums?limit=25&after=bar"
  }
}
なので、pagingキーの中にあるnextキーがあれば、次のデータをアクセスすることができて、存在しない場合は、アクセスすることができません。

毎回、毎回、リファレンスを探すのがメンドイので、ちょっとまとめました。

2014/04/12

[Facebook][iOS][Objective-C]自分のアルバム情報を取得する

Facebook上のアルバム情報を取得する方法を調べました。

GraphAPIのalbumsを使えばいけそうです。

[FBRequestConnection
    startWithGraphPath:@"/me/albums"
    completionHandler:^(FBRequestConnection *connection,id result,NSError *error){
    NSLog(@"%@",result);
}];
実行した結果、取得することができました。

meの部分を任意のidに変更すれば、お友達のアルバムも取得することができます。
(別途パーミッションの設定も設定ですが。)

ものすごく簡単に取れました。

2014/04/04

[iOS][Objective-C]facebookSDKのエラー

先日、facebookSDKを入れたアプリの提出を行ったところ、

The app references non-public selectors in Payload/XXXXX.app/XXXXX: id, setId:
みたいな警告が発生した。

それまでコンパイルエラーも発生せず、validateチェックも通っていたのですが、なぜか、提出時に警告。

理由を調査したところ、どうやら、warning : The app references non-public selectors in Payload/XXXXX.app/XXXXX: id, setId:によると、SDKが悪さをしているらしく、最新版に差し替えたところ取れました。

常日頃、最新版を入れておかないとダメということなのでしょうか。

2013/08/16

[facebook][iOS]app centerに登録するときの注意点 その2

前回、app centerに登録するときの注意点について書きました。

で、実際にFacebook App Centerに提出して通ったので、その時の注意点をまとめたいと思います。

Privacy Policyは必須。かつ、外部サイトに作ること。
最初、Facebook Pagesのノートに書いていたのですが、いつまで立っても審査されず、外部のレンタルサーバーを借りてそこに移したところ、審査が始まりました。

Terms of Seriveは必須。かつ、外部サイトに作ること。
Privacy Policyと同様に、最初、Facebook Pagesのノートに書いていたのですが、いつまで立っても審査されず、外部のレンタルサーバーを借りてそこに移したところ、審査が始まりました。

ちなみに、上の二つのサイトは、日本語でも問題ないようです。

スクリーンショットは、iOSの画面をそのまま掲載すること。

AppleのApp Centerのように、余計なエフェクト入れたりはせず、ありのままの、画像を掲載すること。

以上の注意点を守って、次回以降のアプリも審査に出したいです。

ちなみに、プライバシーポリシーや利用規約のひな形は、以前、紹介した良いウェブサービスを支える「利用規約」の作り方を読んで作りました。